在一个自定义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);
}