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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?