編輯:關於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"
線性布局非常重要的一個屬性:權重
android:layout_weight="1"
可以更改對齊方式
android:layout_gravity="bottom"
表格布局中的節點可以不設置寬高,因為設置了也無效
android:stretchColumns="1"
直接指定組件的x、y坐標
android:layout_x="144dp"
android:layout_y="154dp"
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.itydl.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.itydl.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.itydl.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()
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
查找“可用空間”得到
"可用空間"
查找"memory_available",得到
vcnlfYXZhaWxhYmxl" >
查找"memorysdavail",得到
//這個字符串就是sd卡剩余容量
formatSize(availableBlocks * blockSize) + readOnly
//這兩個參數相乘,得到sd卡以字節為單位的剩余容量
availableBlocks * blockSize
存儲設備會被分為若干個區塊,每個區塊有固定的大小
r:讀
w:寫
x:執行
第5-7位:rwx,表示跟文件擁有者用戶同組的用戶(grouper)對該文件的權限
第8-10位:rwx,表示其他用戶組的用戶(other)對該文件的權限
用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", "");
頁面上有時會用到背景為空心圓角矩形的Button,可以通過xml繪制出來。drawrable文件夾下bg_red_hollow_rectangle.xml<?
最近一直在調用微信的API,卻發現一直調用不成功,糾結了好久,各方面找教程,找官方,官方裡的文檔也只是寫得很模糊,說是按三步走。1、申請App_ID 2、填寫包
開發設計搞了一個帶圓形進度的進度條,在GitHub上逛了一圈,發現沒有,自己撸吧。先看界面效果:主要思路是寫一個繼承ProgressBar的自定義View,不廢話,直接上
使用最新ndk,直接拋棄cygwin,以前做Android的項目要用到NDK就必須要下載NDK,下載安裝Cygwin(模擬Linux環境用的),下載CDT(Eclipse