WEB开发网
开发学院手机开发Android 开发 Android 自定义 View 实例 AnalogClock 源码 阅读

Android 自定义 View 实例 AnalogClock 源码

 2010-02-22 16:09:00 来源:WEB开发网   
核心提示:针对Android底层View的直接构造很多网友没有实战经验,本次Android开发网结合目前平台开源代码一起通过AnalogClock类来理解 View的直接继承,Android 自定义 View 实例 AnalogClock 源码,AnalogClock就是Home Screen上的那个带有两根指针的表盘类,它的实

针对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); //加载表盘资源

if (mDial == null) {

mDial = r.getDrawable(com.android.internal.R.drawable.clock_dial);

}

mHourHand = a.getDrawable(com.android.internal.R.styleable.AnalogClock_hand_hour); //加载时针图片资源

if (mHourHand == null) {

mHourHand = r.getDrawable(com.android.internal.R.drawable.clock_hand_hour);

}

mMinuteHand = a.getDrawable(com.android.internal.R.styleable.AnalogClock_hand_minute); //加载分针图片

if (mMinuteHand == null) {

1 2 3 4  下一页

Tags:Android 定义 View

编辑录入:coldstar [复制链接] [打 印]
赞助商链接