android图片添加文字,android图片上添加文字

这篇博客介绍了如何在Android应用中实现图片添加文字的功能。通过提供主要代码段,展示了创建带有指定字符的标记图片的过程,包括使用Bitmap、Canvas和Paint进行绘制。

1. 效果图

0818b9ca8b590ca3270a3433284dd417.png

原图:

0818b9ca8b590ca3270a3433284dd417.png

2.主要代码

public class MainActivity extends Activity {

ImageView img;

private Bitmap imgMarker;

private int width,height; //图片的高度和宽带

private Bitmap imgTemp; //临时标记图

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

img = (ImageView) findViewById(R.id.imt_test);

imgMarker = BitmapFactory.decodeResource(getResources(), R.drawable.icon_tag);

width = imgMarker.getWidth();

height = imgMarker.getHeight();

img.setBackgroundDrawable(createDrawable('A'));

}

// 穿件带字母的标记图片

private Drawable createDrawable(char letter) {

imgTemp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);

Canvas canvas = new Canvas(imgTemp);

Paint paint = new Paint(); // 建立画笔

paint.setDither(true);

paint.setFilterBitmap(true);

Rect src = new Rect(0, 0, width, height);

Rect dst = new Rect(0, 0, width, height);

canvas.drawBitmap(imgMarker, src, dst, paint);

Paint textPaint = new Paint(Paint.ANTI_ALIAS_FLAG

| Paint.DEV_KERN_TEXT_FLAG);

textPaint.setTextSize(20.0f);

textPaint.setTypeface(Typeface.DEFAULT_BOLD); // 采用默认的宽度

textPaint.setColor(Color.WHITE);

canvas.drawText(String.valueOf(letter), width /2-5, height/2+5,

textPaint);

canvas.save(Canvas.ALL_SAVE_FLAG);

canvas.restore();

return (Drawable) new BitmapDrawable(getResources(), imgTemp);

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.activity_main, menu);

return true;

}

}

测试通过,可以使用

源码下载地址: 点击打开链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值