2

我试图用它android.graphics.Picture来加速我的应用程序所做的一些绘图。但是,当我尝试重放它时,什么都没有发生,就Picture好像它根本没有被绘制或者好像它没有记录任何东西。

这是我的绘图代码;为简单起见,我只是将所有内容都移到了我ViewonDraw方法中。

@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) 上。

4

1 回答 1

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 模拟器上测试)

于 2013-06-08T18:54:15.123 回答