Android UI 学习心得(一)

来源:互联网 发布:淘宝卖家等级在哪里看 编辑:程序博客网 时间:2024/06/06 10:54

在学习Android开发的时候,一直是跟着团队在做项目,但是没有一个系统的学习结构,导致感觉自己哪里都有错误,哪里都不会,前几天买了本书,准备系统学习Android开发,下面记录学习中的相关心得,如果有什么不对的地方请指教(请大家多提意见):

自定义View:

自定义View在Android开发中是很常见的,自定义View就表示你可以自己定义显示效果,这个就给开发者一个很大的自由空间,建立自定义View的步骤如下:

1、创建一个类继承View,然后实现自定义View的构造方法,代码如下:

public class BowView extends View{    public BowView(Context context) {        super(context);    }    public BowView(Context context, AttributeSet attrs) {        super(context, attrs);    }    public BowView(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);    }
一般情况下实现上面的构造方法就可以了;

2、在Layout中进行引用,也就是通过标签来和这个自定义View相互匹配,代码如下:

 <com.xushuangshuang.androidtest2.view.BowView        android:id="@+id/bow_view_myself"        android:layout_width="wrap_content"        android:layout_height="wrap_content" />

自定义的View在这里就完成了,也就是这样你已经可以完成了自定义View的定义和引用,在自定义View中有很多的方法提供给你去监控和实现UI的状况:

@Override    protected void onDraw(Canvas canvas) {        super.onDraw(canvas);    }
绘画,在开始的时候也就是加载自定义View的时候回调这个方法进行对组件绘画,在这个方法中可以绘画自己想要的效果;

 @Override    public boolean onTouchEvent(MotionEvent event) {        return true;    }
touch事件的监控,在此方法中event可以获得UI界面的手势动作情况,在此可以通过对手势的监控来动态的改变UI的状态,在此进行绘画的时候,改变完成应该调用

        invalidate();
方式让UI重绘UI界面,这样就可使事件的点击情况可以在页面做出反应。在自定义View中这两个方法很常用,在继承View父类中很多方法。

自定义属性:

自定义属性就是因为Android给的属性不能满足我们的需求,自定义相关的属性可以对我们的程序进行扩展,更容易控制UI界面。

Android的UI界面有两种一种是在Layout 文件夹下编写xml文件,这种方式是大多数的情况下的UI设计,但是有些时候需要实现一些特定的效果,或者传递修改特定的参数在SDK中没有为我们提供,这个时候就可以在Values文件夹下建立一个attrs.xml文件,在里面写出自己需要添加的控件属性,最后在想要的页面进行引用,然后就可以使用了,因为自定义一般情况下是需要改变的,而这种改变很可能需要程序的控制,因此在程序中可以调用

TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.MyView);   
获得TypeArray的对象,通过这个对象就可以获得在页面中的值,这种传递方式的优点就是将自定义的部分提取出来,降低代码的耦合度,也就这样可以达成一种共识,然后大家都可以使用如果需要的话,Google公司真的是想了很多!!!!!!





0 0