Android 自定义 UI 组件
2010-03-04 04:00:00 来源:WEB开发网上周面试时和某android知名初创公司的CTO有过简短的交流。
因为我之前在android都是采用标准UI组件开发,所以app的界面看上去朴素的很(做多了企业级应用的综合症)。而因为他们目前都是针对消费级市场的,所以必须把界面做的好看甚至花哨以此吸引用户的眼球。“我们80%的代码都是用在界面上的,后台很少。”大概是这么个意思。
回来后,在android developer上看到的确有自定义组件的介绍:
http://developer.android.com/guide/topics/ui/custom-components.html
不过太抽象,还是要通过一个实例来say hello。
中文baidu下,基本上都是下面这个例子抄来抄去。
----
自定义View实例AnalogClock源码
针对Android底层View的直接构造很多网友没有实战经验,本次Android开发网结合目前平台开源代码一起通过AnalogClock类来理解 View的直接继承。AnalogClock就是Home Screen上的那个带有两根指针的表盘类。
public class AnalogClock extends View {
private Time mCalendar;
private Drawable mHourHand; //时针
private Drawable mMinuteHand; //分针
private Drawable mDial; //表盘背景
private int mDialWidth; //表盘宽度
private int mDialHeight; //表盘高度
private boolean mAttached; //附着状态
private final Handler mHandler = new Handler(); //定一个Handler类实现更新时间
private float mMinutes;
private float mHour;
private boolean mChanged; //时间是否改变
public AnalogClock(Context context) {
this(context, null);
}
public AnalogClock(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public AnalogClock(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
Resources r = mContext.getResources();
TypedArray a = context.obtainStyledAttributes(
attrs, com.android.internal.R.styleable.AnalogClock, defStyle, 0);
mDial = a.getDrawable(com.android.internal.R.styleable.AnalogClock_dial);
更多精彩
赞助商链接