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;
    }
}

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容