iTu*_*rki 12 android android-custom-view android-canvas
我创建了一个自定义视图CircleView,如下所示:
public class CircleView extends LinearLayout {
Paint paint1;
public CircleView(Context context) {
super(context);
init();
}
public CircleView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public void init() {
paint1 = new Paint();
paint1.setColor(Color.RED);
}
protected void onDraw(Canvas canvas) {
//super.onDraw(canvas);
canvas.drawCircle(50, 50, 25, paint1);
this.draw(canvas);
}
}
Run Code Online (Sandbox Code Playgroud)
然后我将它包含在我的Activity的布局根目录中<RelativeLayout>:
<com.turkidroid.test.CircleView
android:id="@+id/circle_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerInParent="true" />
Run Code Online (Sandbox Code Playgroud)
但是,没有画出来!
一些信息:
com.turkidroid.test.onDraw()方法中,我尝试包含super.onDraw()和评论它.Ait*_*ron 28
您的onDraw方法永远不会被调用,您需要在自定义视图的构造函数上调用setWillNotDraw(false)才能实际调用onDraw.
如Android SDK中所述:
如果此视图本身不执行任何绘制,请设置此标志以允许进一步优化.默认情况下,此标志未在View上设置,但可以在某些View子类(如ViewGroup)上设置.通常,如果重写onDraw(android.graphics.Canvas),则应清除此标志.
| 归档时间: |
|
| 查看次数: |
13986 次 |
| 最近记录: |