一次android编程的经验总结

来源:互联网 发布:英语基础知识软件 编辑:程序博客网 时间:2024/04/27 23:16

一、界面布局

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生成头文件后,这个头文件的名字很长,可以自己新建一个头文件,把生成的头文件里的内容复制过来,关键是实现头文件里的函数。头文件名叫什么不重要



0 0
原创粉丝点击