原味薯片 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条)

报告相同问题?

悬赏问题

  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类