編輯:關於Android編程
設置組件在指定組件的右邊
android:layout_toRightOf=@id/tv1
設置在指定組件的下邊
android:layout_below=@id/tv1
設置右對齊父元素
android:layout_alignParentRight=true
設置與指定組件右對齊
android:layout_alignRight=@id/tv1
指定各個節點的排列方向
android:orientation=horizontal
設置右對齊
android:layout_gravity=right
當豎直布局時,只能左右對齊和水平居中,頂部底部對齊豎直居中無效當水平布局時,只能頂部底部對齊和豎直居中使用match_parent時注意不要把其他組件頂出去
線性布局非常重要的一個屬性:權重
android:layout_weight=1
權重設置的是按比例分配剩余的空間
可以更改對齊方式
android:layout_gravity=bottom
不能相對於其他組件布局
表格布局中的節點可以不設置寬高,因為設置了也無效
根節點的子節點寬為匹配父元素,高為包裹內容節點的子節點寬為包裹內容,高為包裹內容以上默認屬性無法修改根節點中可以設置以下屬性,表示讓第1列拉伸填滿屏幕寬度的剩余空間
android:stretchColumns=1
直接指定組件的x、y坐標
android:layout_x=144dp
android:layout_y=154dp
Android提供的日志輸出api
Log.v(TAG, 加油吧,童鞋們);
Log.d(TAG, 加油吧,童鞋們);
Log.i(TAG, 加油吧,童鞋們);
Log.w(TAG, 加油吧,童鞋們);
Log.e(TAG, 加油吧,童鞋們);
小案例:用戶輸入賬號密碼,勾選“記住賬號密碼”,點擊登錄按鈕,登錄的同時持久化保存賬號和密碼
彈土司提示用戶登錄成功
Toast.makeText(this, 登錄成功, Toast.LENGTH_SHORT).show();
判斷用戶是否勾選保存賬號密碼
CheckBox cb = (CheckBox) findViewById(R.id.cb);
if(cb.isChecked()){
}
直接開啟文件輸出流寫數據
//持久化保存數據
File file = new File(data/data/com.itheima.rwinrom/info.txt);
FileOutputStream fos = new FileOutputStream(file);
fos.write((name + ## + pass).getBytes());
fos.close();
讀取數據前先檢測文件是否存在
if(file.exists())
讀取保存的數據,也是直接開文件輸入流讀取
File file = new File(data/data/com.itheima.rwinrom/info.txt);
FileInputStream fis = new FileInputStream(file);
//把字節流轉換成字符流
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String text = br.readLine();
String[] s = text.split(##);
讀取到數據之後,回顯至輸入框
et_name.setText(s[0]);
et_pass.setText(s[1]);
應用只能在自己的包名目錄下創建文件,不能到別人家去創建
getCacheDir()得到的file對象的路徑是data/data/com.itheima.rwinrom2/cache
存放在這個路徑下的文件,當內存不足時,有可能被刪除系統管理應用界面的清除緩存,會清除cache文件夾下的東西,清除數據,會清除整個包名目錄下的東西
storage/sdcard:4.3之後的sd卡路徑
最簡單的打開sd卡的方式
File file = new File(sdcard/info.txt);
寫sd卡需要權限
讀sd卡,在4.0之前不需要權限,4.0之後可以設置為需要
使用api獲得sd卡的真實路徑,部分手機品牌會更改sd卡的路徑
Environment.getExternalStorageDirectory()
判斷sd卡是否准備就緒
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
查找“可用空間”得到
可用空間
查找memory_available,得到
vcnlfYXZhaWxhYmxl" >
查找memorysdavail,得到
//這個字符串就是sd卡剩余容量
formatSize(availableBlocks * blockSize) + readOnly
//這兩個參數相乘,得到sd卡以字節為單位的剩余容量
availableBlocks * blockSize
存儲設備會被分為若干個區塊,每個區塊有固定的大小
區塊大小 * 區塊數量 等於 存儲設備的總大小用SharedPreference存儲賬號密碼
往SharedPreference裡寫數據
//拿到一個SharedPreference對象
SharedPreferences sp = getSharedPreferences(config, MODE_PRIVATE);
//拿到編輯器
Editor ed = sp.edit();
//寫數據
ed.putBoolean(name, name);
ed.commit();
從SharedPreference裡取數據
SharedPreferences sp = getSharedPreferences(config, MODE_PRIVATE);
//從SharedPreference裡取數據
String name = sp.getBoolean(name, );
remove:沒有插sd卡 unmount:sd卡已插,但是沒有掛載 CHECKING:sd卡正在被系統遍歷 MOUNTED:sd卡可以讀寫 MOUNTEDREADONLY:sd卡可用,但是只讀
在Android中,每一個應用,都是一個獨立的用戶d:如果是d,就是文件夾,如果是-,就是文件d rwx rwx rwx
第一個rwx:決定owner用戶對此文件有什麼權限
r:讀w:寫x:執行(execute)第二個rwx:決定grouper用戶對此文件有什麼權限
第三個rwx:決定other用戶對此文件有什麼權限
在Android開發中,我們經常會遇到這樣一種情況:在UI界面上進行某項操作後要執行一段很耗時的代碼,比如我們在界面上點擊了一個”下載“按鈕,那麼我們需要執行網絡請求,這
不知道大家是不是有過這樣的感覺。從 https://dl-ssl.google.com/android/eclipse/很慢呢!我是教育網所以確實是很慢的。所以我想了一個
Android應用開發的一項重要內容就是界面開發。對於用戶來說,不管APP包含的邏輯多麼復雜,功能多麼強大,如果沒有提供友好的圖形交互界面,將很難吸引最終用戶。作為一個程
在學習monkeyrunner之前,讓我們先搭建好eclipse安卓開發環境。對於程序開發人員而言,eclipse並不陌生,它提供了一個非常廣闊的平台來開發程序。同樣也可