原味薯片
2016-06-13 01:52
采纳率: 50%
浏览 1.1k
已采纳

Android Picture无法绘制求助

在一个自定义View中写了如下代码,目的是使用Picture录制一段画法然后复制到View的canvas上。

经过测试,Picture可以录制画法(转换为流之后数据长度跟随画法复杂度上升而增加),但是转换为PictureDrawable之后,无法绘制在View的canvas上,试过网上介绍的几种方法,例如canvas.drawPicture(mPicture)和流转换,但无论如何都画不出来,是不是我哪里没有设置好?

以下是代码,求指教!

Picture mPicture;
PictureDrawable mDrawable;
Paint mPaint;

private void record(){
    mPicture = new Picture();
    mDrawable = new PictureDrawable(mPicture);
    mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
    Canvas record = mPicture.beginRecording(getWidth(), getHeight());
    record.drawColor(Color.LTGRAY);
    record.drawCircle(50, 50, 50, mPaint);
    record.drawText("test picture", 50, 50, mPaint);
    mPicture.endRecording();
}

@Override
protected void onDraw(Canvas canvas){
    canvas.drawPicture(mPicture);
    canvas.drawPicture(mPicture,new RectF(0,100,getWidth(),200));
    mDrawable.setBounds(0,200,getWidth(),300);
    mDrawable.draw(canvas);
}
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 原味薯片 2016-06-14 13:25
    已采纳

    已解决,需要先将Picture绘制到一个Bitmap上,然后在onDraw方法里用canvas.drawBitmap绘制这个bitmap

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 猫啸山林 2016-06-13 03:37

    用surfaceview啊

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题