80,488
社区成员
发帖
与我相关
我的任务
分享package com.test;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.view.View;
public class MyView extends View {
public MyView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(Color.BLUE);
Rect rect = new Rect(10, 10, 10, 10);
canvas.drawRect(rect, paint);
}
}
<com.test.MyView
android:id="@+id/myview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/><com.test.MyView
android:id="@+id/myview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>时,没有问题,加了这句之后就有问题.# super(context, attr);
# myPaint = new Paint();
# TypedArray a = context.obtainStyledAttributes(attr, R.styleable.myView);//TypedArray是一个数组容器
# float textSize = a.getDimension(R.styleable.myView_textSize, 30);//防止在XML文件里没有定义,就加上了默认值30
# int textColor = a.getColor(R.styleable.myView_textColor, 0xFFFFFFFF);//同上,这里的属性是:名字_属性名
# myPaint.setTextSize(textSize);
# myPaint.setColor(textColor);
# a.recycle();//我的理解是:返回以前取回的属性,供以后使用。以前取回的可能就是textSize和textColor初始化的那段