将图片绘制到视图的画布上啥都不做
Posted
技术标签:
【中文标题】将图片绘制到视图的画布上啥都不做【英文标题】:Drawing a Picture to a View's Canvas does nothing将图片绘制到视图的画布上什么都不做 【发布时间】:2013-06-08 18:20:13 【问题描述】:我正在尝试使用android.graphics.Picture
来加快我的应用程序所做的一些绘图。但是,当我尝试重放它时,什么也没有发生,就好像Picture
根本没有被绘制或者好像它没有记录任何东西。
这是我的绘图代码;为简单起见,我只是将所有内容移到了我的 View
的 onDraw
方法中。
@Override
protected void onDraw(Canvas canvas)
super.onDraw(canvas);
canvas.drawColor(Color.RED);
Picture p = new Picture();
Paint paint = new Paint();
paint.setColor(Color.BLACK);
paint.setStyle(Style.STROKE);
Canvas c = p.beginRecording(100, 100);
c.drawColor(Color.WHITE);
c.drawLine(0, 0, 100, 100, paint);
p.endRecording();
p.draw(canvas);
canvas.drawPicture(p);
有了这个,我得到的只是一个完全红色的背景,没有别的;线条和Picture
的白色背景都没有出现。
然后我尝试了http://www.java2s.com/Code/Android/2D-Graphics/DrawPicture.htm 上发布的示例代码,但也无济于事:没有任何显示,我得到的只是白色背景。
这发生在我的 Galaxy S2 (Android 4.1.2) 和模拟器 (4.2.2) 上。
【问题讨论】:
【参考方案1】:在你的活动中试试这个:
View view = new View(this);
Picture picture = new Picture();
Canvas c = picture.beginRecording(100, 100);
Paint p = new Paint();
c.drawColor(Color.WHITE);
p.setColor(Color.RED);
c.drawCircle(50, 50, 40, p);
picture.endRecording();
Drawable d = new PictureDrawable(picture);
view.setBackgroundDrawable(d);
setContentView(view);
你应该看到白色背景上的红色小圆圈(在 2.3 模拟器上测试)
【讨论】:
抱歉回复晚了,我完全错过了这个答案:)。以上是关于将图片绘制到视图的画布上啥都不做的主要内容,如果未能解决你的问题,请参考以下文章
使用 TPH 和复杂类型时 LINQ to Entities 的初始性能问题,Pregen 视图似乎啥都不做?
将 UIView.transform 设置为任意翻译 CGAffineTransform 啥都不做