如何在画布上绘制并转换为位图?
Posted
技术标签:
【中文标题】如何在画布上绘制并转换为位图?【英文标题】:How to draw on canvas and convert to bitmap? 【发布时间】:2015-08-24 08:11:17 【问题描述】:我正在尝试在画布上绘制一些线条和形状,然后将其转换为 ImageView 上的位图。我正在使用扩展“视图”的自定义类,并在“OnDraw 方法上画线。这是我的代码(这个类只画简单的线):
public class finalDraw extends View
public finalDraw(Context context)
super(context);
@Override
protected void onDraw(Canvas canvas)
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(Color.BLUE);
for (int i = 0; i <100; i++)
canvas.drawLine(xStart * i + 50 , yStart , stopX + 30 , stopY,paint);
invalidate();
如何获取绘图结果并在 ImageView 上显示? 谢谢!
【问题讨论】:
【参考方案1】:发现这篇文章可能会有所帮助:http://www.informit.com/articles/article.aspx?p=2143148&seqNum=2
draw.setOnClickListener(new OnClickListener()
public void onClick(View v)
Bitmap imageBitmap = Bitmap.createBitmap(imageView.getWidth(), imageView.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(imageBitmap);
float scale = getResources().getDisplayMetrics().density;
Paint p = new Paint();
p.setColor(Color.BLUE);
p.setTextSize(24*scale);
canvas.drawText("Hello", imageView.getWidth()/2, imageView.getHeight()/2, p);
imageView.setImageBitmap(imageBitmap);
);
【讨论】:
【参考方案2】:通过Canvas(Bitmap bitmap) 创建一个带有位图的画布。对该画布的所有绘制都将在该位图中。
【讨论】:
以上是关于如何在画布上绘制并转换为位图?的主要内容,如果未能解决你的问题,请参考以下文章