我的考试参考

来源:互联网 发布:世界国家城市数据库 编辑:程序博客网 时间:2024/05/17 02:57

public class MyView extends View {

private int text;private int zhijings;public MyView(Context context) {    this(context,null);}public MyView(Context context, @Nullable AttributeSet attrs) {    this(context, attrs,0);}public MyView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {    this(context, attrs, defStyleAttr,0);}public MyView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {    super(context, attrs, defStyleAttr, defStyleRes);

//获取自定义属性
TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.MyView, defStyleAttr, 0);
int n = a.getIndexCount();
for (int i = 0; i < n; i++) {
int attr = a.getIndex(i);
switch (attr) {
case R.styleable.MyView_text:
text= a.getInteger(attr, 0);
break;
}

    }    a.recycle();}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {    super.onMeasure(widthMeasureSpec, heightMeasureSpec);}@Overrideprotected void onLayout(boolean changed, int left, int top, int right, int bottom) {    super.onLayout(changed, left, top, right, bottom);}@Overrideprotected void onDraw(Canvas canvas) {    super.onDraw(canvas);   Paint paint1=new Paint();    paint1.setColor(Color.GREEN);//canvas.drawCircle(300f, 300, 130, paint1);//参数依次是 x.y的位置.圆的直径和画笔    canvas.drawCircle(300,300,zhijings,paint1);

//*************************************************
Paint paint=new Paint();
paint.setTextSize(30);
//画文字 第一个参数是文字本身
//第二个参数是 x的位置、
//第三个参数是 y的位置
canvas.drawText(text+”“,240f,300f,paint);
//***************************************************
Paint paint2=new Paint();
//空心的
paint2.setStyle(Paint.Style.STROKE);
paint2.setStrokeWidth(3);
canvas.drawCircle(300,300,105,paint2);

}
public void Texts(int a){
this.text=a;
}
public void zhijinga(int b){
this.zhijings=b;
}

//图片的拖动********************
private int lastX = 0;
private int lastY = 0;

@Overridepublic boolean onTouchEvent(MotionEvent event) {    switch (event.getAction()) {        case MotionEvent.ACTION_DOWN:            lastX = (int) event.getRawX();            lastY = (int) event.getRawY();            break;        case MotionEvent.ACTION_MOVE:            if (text==100) {                int dx = (int) event.getRawX() - lastX;                int dy = (int) event.getRawY() - lastY;                int left = getLeft() + dx;                int top = getTop() + dy;                int right = getRight() + dx;                int bottom = getBottom() + dy;                layout(left, top, right, bottom);                lastX = (int) event.getRawX();                lastY = (int) event.getRawY();            }            break;        case MotionEvent.ACTION_UP:            break;        default:            break;    }    return true;}

}

原创粉丝点击