如何在画布上绘制并转换为位图?

4

我希望在画布上绘制一些线条和形状,然后将其转换为 ImageView 上的位图。我使用了一个自定义类,它扩展了“View”,并在“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上?谢谢!

2个回答

3

发现这篇文章可能会有所帮助: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);
    }
});

1
通过 Canvas(Bitmap bitmap) 创建一个带有位图的画布,所有对该画布的绘制都将在该位图中进行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接