Android 图片上绘制文字、数字等

概述

有时会遇到这样的需求,图片上绘制文字、数字,以及两张图片合并、图片上绘制几何图案等等。实现原理都是相同的,即拷贝一份背景图片,应用 Canvas 将需要的文字或者图片绘制到背景图片上。在这里记录一个将文字绘制到图片上的效果,其他同理。
使用场景:地图的自定义覆盖物

效果图

8.JPG
9.JPG

代码

public class BitmapActivity extends Activity {

    private ImageView ivTuPian;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bitmap);
        ivTuPian = (ImageView) findViewById(R.id.iv_tupian);
        initView();
    }

    private void initView() {
        Bitmap bitmap = setTextToImg("我是绘制上来的");
        ivTuPian.setImageBitmap(bitmap);
    }

    /**
     * 文字绘制在图片上,并返回bitmap对象
     */
    private Bitmap setTextToImg(String text) {
        BitmapDrawable icon = (BitmapDrawable) getResources().getDrawable(R.drawable.score_bg);

        Bitmap bitmap = icon.getBitmap().copy(Bitmap.Config.ARGB_8888, true);
        Canvas canvas = new Canvas(bitmap);
        Paint paint = new Paint();
        // 抗锯齿
        paint.setAntiAlias(true);
        // 防抖动
        paint.setDither(true);
        paint.setTextSize(200);
        paint.setColor(Color.parseColor("#ff0000"));
        canvas.drawText(text,(bitmap.getWidth() / 5),(bitmap.getHeight() / 2), paint);
        return bitmap;
    }
}

注:由代码可以看出实现起来还是比较简单的。尝试实现这种效果,可以举一反三的实现其他同理的效果。

你可能感兴趣的:(Android 图片上绘制文字、数字等)