在android中添加水印图像
我有代码添加水印在图像像这样在android中添加水印图像,android,android-layout,Android,Android Layout,我有代码添加水印在图像像这样 public static Bitmap mark(Bitmap src, String watermark, Point location, Color color, int alpha, int size, boolean underline) { int w = src.getWidth(); int h = src.getHeight(); Bitmap result = Bitmap.
public static Bitmap mark(Bitmap src, String watermark, Point location, Color color, int alpha, int size, boolean underline) {
int w = src.getWidth();
int h = src.getHeight();
Bitmap result = Bitmap.createBitmap(w, h, src.getConfig());
Canvas canvas = new Canvas(result);
canvas.drawBitmap(src, 0, 0, null);
Paint paint = new Paint();
paint.setColor(color.RED);
paint.setAlpha(alpha);
paint.setTextSize(size);
paint.setAntiAlias(true);
paint.setUnderlineText(underline);
canvas.drawText(watermark, location.x, location.y, paint);
return result;
}
我用这个代码调用这个函数
mark(bitmap, "watermark", b, null, c, 100, false);
imgshoot.setImageBitmap(bitmap);
但是什么也没发生,你能帮我吗??谢谢您没有将返回的位图
结果
分配给任何内容。用新位图替换旧位图
bitmap = mark(bitmap, "watermark", b, null, c, 100, false);
imgshoot.setImageBitmap(bitmap);
编辑:
根据评论,您仍然存在问题:尝试硬编码一些参数,以进行测试。看看你的参数是否有问题
Paint paint = new Paint();
paint.setColor(color.RED);
//paint.setAlpha(alpha);
paint.setTextSize(20); //size
//paint.setAntiAlias(true);
paint.setUnderlineText(underline);
canvas.drawText(watermark, 10, 10, paint); //location.x, location.y
它解决了,我只是对代码做了一些修改,谢谢你的建议,末日骑士:) 我用这个函数调用
bitmap = mark(bitmap, "Hallo");
imgshoot.setImageBitmap(bitmap);
@亚雅:看我的编辑。您的代码必须包含第一位。但你似乎有两个问题。试着像我一样努力编码参数。看看会发生什么。如果可行,请检查您的参数,看看哪一个有故障。:)很抱歉,也没有发生任何情况,meaby我的水印图像代码错误:(
bitmap = mark(bitmap, "Hallo");
imgshoot.setImageBitmap(bitmap);
private Bitmap addWaterMark(Bitmap src)
{
int w = src.getWidth();
int h = src.getHeight();
Bitmap result = Bitmap.createBitmap(w,h,src.getConfig());
Canvas canvas = new Canvas(result);
canvas.drawBitmap(src,0,0, null);
Bitmap waterMark = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.ic_laucher);
canvas.drawBitmap(waterMark,0,0,null);
return result;
}