
我试图通过单击按钮来动态绘制视图.单击按钮时,出现非法状态异常提示;指定的视图已经有一个父级.
这是动态创建视图的正确方法吗?
@OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); draw = new DrawVIEw(this); relativeLayout = new relativeLayout(this); createbutton = new button(this); relativeLayout.addVIEw(createbutton); setContentVIEw(relativeLayout); createbutton.setonClickListener(new OnClickListener() { @OverrIDe public voID onClick(VIEw arg0) { relativeLayout.addVIEw(draw); setContentVIEw(draw); } }); }public class DrawVIEw extends VIEw{ Paint paint; public DrawVIEw(Context context, AttributeSet attrs) { super(context, attrs); } public DrawVIEw(Context context) { super(context); paint = new Paint(); } @OverrIDe protected voID onDraw(Canvas canvas) { super.onDraw(canvas); paint.setcolor(color.BLACK); paint.setstrokeWIDth(3); canvas.drawRect(30, 30, 80, 80, paint); paint.setstrokeWIDth(0); paint.setcolor(color.CYAN); canvas.drawRect(33, 60, 77, 77, paint ); paint.setcolor(color.YELLOW); canvas.drawRect(33, 33, 77, 60, paint ); }}解决方法:
更换
relativeLayout.addVIEw(draw); setContentVIEw(draw);与
relativeLayout.addVIEw(draw); relativeLayout.invalIDate();这会将您的视图添加到relativeLayout中,并使其无效以刷新屏幕
总结以上是内存溢出为你收集整理的如何使用Canvas Android绘制视图?全部内容,希望文章能够帮你解决如何使用Canvas Android绘制视图?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)