第2章 Android应用的界面编程 2.1

来源:互联网 发布:pc安全软件 编辑:程序博客网 时间:2024/06/05 14:48

2.1 界面编程与视图(view)组件
android 的所有UI组件都继承了View累类,其重要子类ViewGroup通常作为组件的容器类使用,而ViewGroup是抽象类所以通常使用其子类做容器。
要善于使用文档,而Android的文档打开较慢。
大部分时候控制UI组件的XML属性还有对应的方法。
定义xml文件后Java代码使用如下方法在activity中显示:

setContentView(R.layout.<resource_name>);

访问资源文件使用:

findViewByID(R.id.<android.id.属性值>)

创建UI组件许传入this参数,即context参数(抽象类),代表访问Android应用环境的全局信息API,可通过该参数获取Android应用环境的全局信息。
通过xml来控制UI界面,要比使用代码控制要更方便。但完全使用xml来控制难免有失灵活,所以最好使用xml和java代码混合控制。

自定义View组件:

//跟随手指的小球public class DrawView extends View{    public float currentX = 40;    public float currentY = 50;    //定义并创建画笔    Paint p = new Paint();    public DrawView(Context context)    {      super(context);    }    public DrawView(Context context,AttibuteSet set)    {      super(context,set);    }    @Override    public void onDraw(Canvas cnavas)    {    super.onDraw(canvas);    //设置画笔的颜色    p.setColor(Color.RED);    //绘制一个小圆    canvas.drawCircle(currentX,currentY,15,p);    }    //为该组件的触碰事件重写事件处理方法    @Override    public boolean onTouchEvent(MotionEvent event)    {    //修改currentX,currentY两个属性    currentX = event.getX();    currentY = event.getY();    //通知当前组件重绘自己    invalidate();    //返回true表明该处理方法已经处理该事件    return true;    }}

将该组件添加到指定容器

public class CustomView extends Acitivity{     @Override     public void onCreate(Bundle savedInstanceState)     {     super.onCreate(savedInstanceState);     setContentView(R.layout.main);     LinearLayout root = (LinearLayout) findViewById(R.id.root);     final DrawView draw = new DrawView(this);     //设置自定义组建的最小宽度,高度     draw.setMinimumWidth(300);     draw.setMinimumHeight(500);     root.addView(draw);     }}

如上是使用代码管理组件。
使用xml布局文件管理:

<LinearLayout<org.crazyit.ui.DrawView      android:layout_width="match_parent"      android:layout_height="match_parent"/></LinearLayout>
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 弯道以后就是直线行驶怎么办 跑步机的声音大怎么办 科二一直考不过怎么办 考科目三太紧张怎么办 科目三太紧张了怎么办 跑步慢怎么办怎样跑快 铣床铣得不直怎么办 考试的时候检测仪响怎么办 吸入腐蚀性气体导致嗓子疼怎么办 孕妇已做c13检查怎么办 静电除尘器绝缘子箱温度低怎么办 高中三角函数计算总算不对怎么办 江苏高考物理考d怎么办 高二化学学不好怎么办 中考最后一次月考下滑怎么办 物联网卡网速慢怎么办 机械表长时间不带不走了怎么办 高中档案有涂改痕迹怎么办 大学平时成绩为0怎么办 电大英语考试成绩取消了怎么办 网贷评分不足要怎么办 学业水平广东1c怎么办 绣花机速度太慢怎么办 娃脖子有点烂了怎么办 7月省内流量套餐怎么办 qq手游授权失败怎么办 钉钉不够6人创建怎么办 钉钉 不够6个人怎么办 plsql删错了表怎么办 吊兰长出来的茎怎么办 防水台鞋跟太高怎么办 证件照头部比例过大怎么办 特岗照片传错了怎么办 打印报名表照片不显示怎么办 刚买的床有味道怎么办 雨刷器角度太小怎么办 四个月宝宝闹觉怎么办 怀孕六个月睡不好觉怎么办? 婴儿睡不好觉总是吵闹怎么办 婴儿鼻塞睡不好觉怎么办 玩英雄联盟鼠标变亮白怎么办