組件默認左對齊、頂部對齊html
設置組件在指定組件的右邊android
android:layout_toRightOf="@id/tv1"
設置在指定組件的下邊web
android:layout_below="@id/tv1"
設置右對齊父元素api
android:layout_alignParentRight="true"
設置與指定組件右對齊緩存
android:layout_alignRight="@id/tv1"
指定各個節點的排列方向ide
android:orientation="horizontal|vertical"
設置右對齊佈局
android:layout_gravity="right"
當豎直佈局時,只能左右對齊和水平居中,頂部底部對齊豎直居中無效post
當水平佈局時,只能頂部底部對齊和豎直居中網站
使用match_parent時注意不要把其餘組件頂出去this
線性佈局很是重要的一個屬性:權重
android:layout_weight="1"
權重設置的是按比例分配剩餘的空間
默認組件都是左對齊和頂部對齊,每一個組件至關於一個div
能夠更改對齊方式
android:layout_gravity="bottom"
不能相對於其餘組件佈局
每一個節點是一行,它的每一個子節點是一列
表格佈局中的節點能夠不設置寬高,由於設置了也無效
根節點的子節點寬爲匹配父元素,高爲包裹內容
節點的子節點寬爲包裹內容,高爲包裹內容
以上默認屬性沒法修改
根節點中能夠設置如下屬性,表示讓第1列拉伸填滿屏幕寬度的剩餘空間
android:stretchColumns="1"
直接指定組件的x、y座標
android:layout_x="144dp" android:layout_y="154dp"
日誌信息總共分爲5個等級
verbose
debug
info
warn
error
定義過濾器方便查看
System.out.print輸出的日誌級別是info,tag是System.out
Android提供的日誌輸出api
Log.v(TAG, "寶寶巴士!"); Log.d(TAG, "寶寶巴士!"); Log.i(TAG, "寶寶巴士!"); Log.w(TAG, "寶寶巴士!"); Log.e(TAG, "寶寶巴士!");
Ram內存:運行內存,至關於電腦的內存
Rom內存:內部存儲空間,至關於電腦的硬盤(data/data/com.sinyee.babybus.packagename)
sd卡:外部存儲空間,至關於電腦的移動硬盤
小案例:用戶輸入帳號密碼,勾選「記住帳號密碼」,點擊登陸按鈕,登陸的同時持久化保存帳號和密碼
彈土司提示用戶登陸成功
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]);
應用只能在本身的包名目錄下建立文件,不能到別人家去建立
須要改動的地方:
項目名字
應用包名
R文件從新導包
getFilesDir()獲得的file對象的路徑是data/data/com.sinyee.babbyus.packagename/files
getCacheDir()獲得的file對象的路徑是data/data/com.sinyee.babbyus.packagename/cache
系統管理應用界面的清除緩存,會清除cache文件夾下的東西,清除數據,會清除整個包名目錄下的東西
sdcard:2.3以前的sd卡路徑
mnt/sdcard:4.3以前的sd卡路徑
storage/sdcard:4.3以後的sd卡路徑
最簡單的打開sd卡的方式
File file = new File("sdcard/info.txt");
寫sd卡須要權限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
讀sd卡,在4.0以前不須要權限,4.0以後能夠設置爲須要
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
使用api得到sd卡的真實路徑,部分手機品牌會更改sd卡的路徑
Environment.getExternalStorageDirectory()
判斷sd卡是否準備就緒
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
導入Settings項目
查找「可用空間」獲得
<string name="memory_available" msgid="418542433817289474">"可用空間"</string>
查找"memory_available",獲得
<Preference android:key="memory_sd_avail" style="?android:attr/preferenceInformationStyle" android:title="@string/memory_available" android:summary="00"/>
查找"memory_sd_avail",獲得
//這個字符串就是sd卡剩餘容量 formatSize(availableBlocks * blockSize) + readOnly //這兩個參數相乘,獲得sd卡以字節爲單位的剩餘容量 availableBlocks * blockSize
存儲設備會被分爲若干個區塊,每一個區塊有固定的大小
區塊大小 * 區塊數量 等於 存儲設備的總大小
在Android中,每個應用是一個獨立的用戶
drwxrwxrwx
第1位:d表示文件夾,-表示文件
第2~4位:rwx,表示這個文件的擁有者用戶(owner)對該文件的權限
r:讀
w:寫
x:執行
第5-7位:rwx,表示跟文件擁有者用戶同組的用戶(grouper)對該文件的權限
第8-10位:rwx,表示其餘用戶組的用戶(other)對該文件的權限
MODE_PRIVATE:-rw-rw----
MODE_APPEND:-rw-rw----
MODE_WORLD_WRITEABLE:-rw-rw--w-
MODE_WORLD_READABLE:-rw-rw-r--
本站文章爲 寶寶巴士 SD.Team 原創,轉載務必在明顯處註明:(做者官方網站: 寶寶巴士 )
轉載自【寶寶巴士SuperDo團隊】 原文連接: http://www.cnblogs.com/superdo/p/4871079.html