一次android編程的經驗總結

一、界面佈局

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文件,增加

 android:focusable="true" 
 android:focusableInTouchMode="true"
這樣 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生成頭文件後,這個頭文件的名字很長,可以自己新建一個頭文件,把生成的頭文件裏的內容複製過來,關鍵是實現頭文件裏的函數。頭文件名叫什麼不重要



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章