int x = 10;
int y = 10;
int r = 4;
Paint mPaint = new Paint();
mPaint.setColor(0xFF0000);
Canvas mCanvas = new Canvas();
mCanvas.drawCircle(x,y,r,mPaint); 有没有办法将mCanvas转换成可绘制的?我的目标是生成具有特定形状和颜色的绘图。
谢谢
发布于 2012-07-06 06:22:14
对于像你的圆圈这样的简单形状,我认为Shape Drawable会更容易。对于更复杂的事情,只需创建一个位图供您的画布使用,然后创建画布并在其中绘制,然后从您的位图创建一个可绘制的。类似于:
int x = 10;
int y = 10;
int r = 4;
Paint mPaint = new Paint();
mPaint.setColor(0xFF0000);
Bitmap bitmap = Bitmap.createBitmap(/* read the docs*/);
Canvas mCanvas = new Canvas(bitmap);
mCanvas.drawCircle(x,y,r,mPaint);
BitmapDrawable drawable = new BitmapDrawable(getResources(), bitmap);也许有点书呆子气(希望能增加你的理解),画布只是托管"draw“调用,并绘制到你指定的位图中。这意味着:
setBitmap()。发布于 2012-07-06 02:09:16
摘自另一篇文章,这里是做这件事的psuedo代码。
ByteArrayOutputStream baos = new ByteArrayOutputStream()
Bitmap bitmap = Bitmap.createBitmap( view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
// This converts the bitmap to a drawable
BitmapDrawable mDrawable = new BitmapDrawable(getResources(),bitmap);或者,您也可以使用getDrawingCache(),如该主题的另一个答案中所述。
https://stackoverflow.com/questions/11349971
复制相似问题