美文网首页
Android 图片上绘制文字、数字等

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

作者: IT一书生 | 来源:发表于2018-03-19 23:06 被阅读580次

    概述

    有时会遇到这样的需求,图片上绘制文字、数字,以及两张图片合并、图片上绘制几何图案等等。实现原理都是相同的,即拷贝一份背景图片,应用 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 图片上绘制文字、数字等

          本文链接:https://www.haomeiwen.com/subject/lrzlqftx.html