由于Android提供的空间有限,不能满足程序的需求,所以才有了自定义控件
时钟
首先要写一个类继承自View
package com.example.administrator.myselfview.view;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Handler;
import android.os.Message;
import android.util.AttributeSet;
import android.view.View;
import java.util.Calendar;
/**
* Created by Administrator on 2015/9/16.
*/
public class MyAlarmview extends View {
private int width;
private int height;
private Paint mPaintLine;
private Paint mPaintSecondLine;
private Paint mPaintCricle;
private Paint mPaintText;
private Calendar mCalendar;
public static final int UPDATE_TIME=0X22;
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case UPDATE_TIME:
mCalendar=Calendar.getInstance();
invalidate();
handler.sendEmptyMessageDelayed(UPDATE_TIME,1000);
break;
}
}
};
public MyAlarmview(Context context) {
super(context);
}
public MyAlarmview(Context context, AttributeSet attrs) {
super(context, attrs);
mPaintLine=new Paint();
mPaintLine.setColor(Color.BLACK);//设置颜色
mPaintLine.setStrokeWidth(10);//画笔宽度
mPaintSecondLine=new Paint();
mPaintSecondLine.setColor(Color.GRAY);
mPaintSecondLine.setStrokeWidth(5);
mPaintCricle=new Paint();
mPaintCricle.setColor(Color.BLACK);
mPaintCricle.setStrokeWidth(10);
mPaintCricle.setStyle(Paint.Style.STROKE);//圆形画笔空心
mPaintText=new Paint();
mPaintText.setColor(Color.BLACK);
mPaintText.setTextSize(30);//字体画笔设置字体大小
mPaintText.setTextAlign(Paint.Align.CENTER);//让字体居中显示
mCalendar=Calendar.getInstance();
handler.sendEmptyMessage(UPDATE_TIME);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
width=getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec);
height=getDefaultSize(getSuggestedMinimum