Android:在新画布上绘图

Android:在新画布上绘图,第1张

概述我通过扩展View创建了一个自定义视图. public class CustomView extends View { private Canvas canvas2; private Bitmap backingBitmap; 在CustomView的构造函数中,我有以下代码: backingBitmap = Bitmap.createBitmap(100, 100 我通过扩展VIEw创建了一个自定义视图.

public class CustomVIEw extends VIEw {        private Canvas canvas2;        private Bitmap backingBitmap;

在CustomVIEw的构造函数中,我有以下代码:

backingBitmap = Bitmap.createBitmap(100,100,Bitmap.Config.ARGB_8888);canvas2 = new Canvas(backingBitmap);

在onDraw中,我有:

protected voID onDraw(Canvas canvas) {    super.onDraw(canvas);    canvas.drawCircle(100,50,paint);    canvas2.drawCircle(0,10,paint);}

我可以看到使用“canvas”对象绘制的圆,但不是使用“canvas2”对象绘制的圆.
我的理解是,只需要创建一个可变的Bitmap并使其成为Canvas的支持位图.有人能指出这里有什么问题吗?

奖金问题:在屏幕上创建自定义画布对象的位置,以及如何设置其位置?

创建多个画布的原因:我有一个包含整个屏幕的SurfaceVIEw.所以,它的画布基本上覆盖整个屏幕.我需要在屏幕内制作一个类似窗口的矩形,并且需要在该窗口的范围内制作动画.基本上,如果您在此窗口中翻译图像,则不应在窗口边界外绘制图像.

干杯!

解决方法 我弄清楚我的理解有什么问题.这一切看起来都很简单!这 link有帮助.

基本上,当我们创建一个Canvas对象时,它会创建一个屏幕画布来保存我们的绘图调用.这个Canvas对象需要由一个可变的Bitmap支持,这样所有的绘图最终都会存储在这个Bitmap上.绘图完成后,您可以使用绑定到曲面的画布(在onDraw中获得的画布)绘制可变位图.

在我的代码中,我进行了以下更改以使其正常工作.

protected voID onDraw(Canvas canvas) {    super.onDraw(canvas);    canvas.drawCircle(100,paint);    canvas2.drawCircle(25,25,paint);    canvas.drawBitmap(backingBitmap,200,90,paint);}
总结

以上是内存溢出为你收集整理的Android:在新画布上绘图全部内容,希望文章能够帮你解决Android:在新画布上绘图所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1129922.html

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

发表评论

登录后才能评论

评论列表(0条)

保存