一、界面佈局
1、佈局劃分
首先對界面上的組件劃分爲一個個垂直或水平的佈局,大布局包含小布局,層層嵌套。因爲不太習慣所以暫時沒有用到table layout。
2、組件之間的相對位置
通過android的layout_below 等來調整組件相對位置; 通過 layout_marginRight/top/left 來調整組件之間間距。
3、組件大小
android:layout_width, android:layout_height來指定絕對大小。
4、給button潤色
通過android:background="@drawable/orange" 通過背景圖來給button潤色。
二、activity編程
1、放到板子上跑時發現,某個activity打開時,EditText自動獲取焦點,彈出鍵盤,如何避免這個情況
修改xml文件,增加
這樣 activity跑起來的時候不會自動彈出鍵盤。
2、接收到數據如何更新界面
注意不能通過thread來更新界面。 方法之一通過handler
目前採用的方式是啓動一個定時器來實時檢測是否有新數據,然後發送消息到handler.
public void startTask() {
// TODO Auto-generated method stub
Timer mTimer = new Timer();
TimerTask mTask = new TimerTask() {
@Override
public void run() {
mHandler.sendEmptyMessage(0);
}
};
mTimer.schedule(mTask, 2 * 1000, 2 * 1000);// 這裏設置自動切換的時間,單位是毫秒,2*1000表示2秒
}
// 處理EmptyMessage(0)
@SuppressLint("HandlerLeak")
Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
int size;
try {
byte[] buffer = new byte[64];
size = cur_com.mInputStream.read(buffer);
if (size > 0) {
if (mReception != null) {
mReception.append(new String(buffer, 0, size));
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
3、界面方向
在start activity啓動一個新的界面發現,儘管新界面對應的佈局文件裏指明橫屏
android:screenOrientation= "landscape" ,但是還是豎屏,只有用rotation才旋轉過來,但是界面顯示有問題。
只能在代碼裏調整才起效,代碼如下:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
三、 關於NDK步驟
使用javah生成頭文件後,這個頭文件的名字很長,可以自己新建一個頭文件,把生成的頭文件裏的內容複製過來,關鍵是實現頭文件裏的函數。頭文件名叫什麼不重要