如何使用Canvas Android绘制视图?

如何使用Canvas Android绘制视图?,第1张

概述我试图通过单击按钮来动态绘制视图.单击按钮时,出现非法状态异常提示;指定的视图已经有一个父级.这是动态创建视图的正确方法吗?@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);draw=newDra

我试图通过单击按钮来动态绘制视图.单击按钮时,出现非法状态异常提示;指定的视图已经有一个父级.

这是动态创建视图的正确方法吗?

 @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绘制视图?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1087596.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存