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

Android 自定义 View 实例 AnalogClock 源码

 2010-02-22 16:09:00 来源:WEB开发网   
核心提示:canvas.restore();canvas.save();canvas.rotate(mMinutes / 60.0f * 360.0f, x, y); //同理,分针旋转的角度final Drawable minuteHand = mMinuteHand;if (changed) {w = minuteHand.

canvas.restore();

canvas.save();

canvas.rotate(mMinutes / 60.0f * 360.0f, x, y); //同理,分针旋转的角度

final Drawable minuteHand = mMinuteHand;

if (changed) {

w = minuteHand.getIntrinsicWidth();

h = minuteHand.getIntrinsicHeight();

minuteHand.setBounds(x - (w / 2), y - (h / 2), x + (w / 2), y + (h / 2));

}

minuteHand.draw(canvas);

canvas.restore();

if (scaled) {

canvas.restore();

}

}

private void onTimeChanged() { //获取时间改变,计算当前的时分秒

mCalendar.setToNow();

int hour = mCalendar.hour;

int minute = mCalendar.minute;

int second = mCalendar.second;

mMinutes = minute + second / 60.0f;

mHour = hour + mMinutes / 60.0f;

mChanged = true;

}

private final BroadcastReceiver mIntentReceiver = new BroadcastReceiver() { //监听获取时间改变action

@Override

public void onReceive(Context context, Intent intent) {

if (intent.getAction().equals(Intent.ACTION_TIMEZONE_CHANGED)) {

String tz = intent.getStringExtra("time-zone");

mCalendar = new Time(TimeZone.getTimeZone(tz).getID());

}

onTimeChanged(); //获取新的时间

invalidate(); //刷新屏幕,强制类调用onDraw方法实现分针时针的走动

}

};

看了本例根据,Android开发很简单吧,感兴趣的网友可以为本程序加入一个秒针,不过Android123提醒网友的是可能对于电池,以及系统运行效率产生一定的影响,不过作为练习大家可以试一试。

上一页  1 2 3 4 

Tags:Android 定义 View

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