项目中出于各种目的需要在敏感部位添加水印,最近写了一个水印,主要用到的是Canvas中的方法即可实现。
下面贴出部分代码,以供参考:
private void initView() {
//获取app名称
String firstTxt = getResources().getString(R.string.app_name);
Bitmap bitmap = Bitmap.createBitmap(400, 400, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
anvas.drawColor(getResources().getColor(R.color.color_eeeeee));
Paint paint = new Paint();
paint.setColor(Color.GRAY);
paint.setAlpha(80);
paint.setAntiAlias(true);
paint.setTextAlign(Paint.Align.CENTER);
paint.setTextSize(getResources().getDimension(R.dimen.txt_size_28));
//第一行文字(应用名称)倾斜路径
Path path = new Path();
path.moveTo(0, 200);
path.lineTo(400, 0);
//绘制应用名称
canvas.drawTextOnPath(firstTxt, path, 0, 30, paint);
//第二行文字倾斜
Path pathName = new Path();
pathName.moveTo(0, 400);
pathName.lineTo(400, 200);
canvas.drawTextOnPath(secondTxt, pathName, 0, 0, paint);
//生成背景bitmap
BitmapDrawable bitmapDrawable = new BitmapDrawable(bitmap);
bitmapDrawable.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
bitmapDrawable.setDither(true);
this.setBackgroundDrawable(bitmapDrawable);
}