概述
有時會遇到這樣的需求,圖片上繪制文字、數(shù)字,以及兩張圖片合并、圖片上繪制幾何圖案等等。實現(xiàn)原理都是相同的,即拷貝一份背景圖片,應(yīng)用 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;
}
}
注:由代碼可以看出實現(xiàn)起來還是比較簡單的。嘗試實現(xiàn)這種效果,可以舉一反三的實現(xiàn)其他同理的效果。