【问题标题】: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 上显示? 谢谢!

【问题讨论】:

    标签: android canvas bitmap


    【解决方案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) 创建一个带有位图的画布。对该画布的所有绘制都将在该位图中。

      【讨论】:

        猜你喜欢
        • 2015-11-03
        • 1970-01-01
        • 1970-01-01
        • 2021-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-10
        相关资源
        最近更新 更多