1 package com.zzw.addwatermark; 2 3 import android.app.Activity; 4 import android.graphics.Bitmap; 5 import android.graphics.Canvas; 6 import android.graphics.Bitmap.Config; 7 import android.graphics.Color; 8 import android.graphics.Paint; 9 import android.graphics.drawable.BitmapDrawable; 10 import android.graphics.drawable.Drawable; 11 import android.os.Bundle; 12 import android.view.Menu; 13 import android.view.MenuItem; 14 import android.widget.ImageView; 15 16 17 public class MainActivity extends Activity { 18 19 @Override 20 protected void onCreate(Bundle savedInstanceState) { 21 super.onCreate(savedInstanceState); 22 setContentView(R.layout.activity_main); 23 24 ImageView imageView=(ImageView) findViewById(R.id.imageView); 25 26 //使用drawable裏面的一張圖片,個人頭像爲例 27 Drawable drawable=getResources().getDrawable(R.drawable.test); 28 29 //把Drawable轉換爲Bitmap 30 BitmapDrawable bd=(BitmapDrawable) drawable; 31 Bitmap bm=bd.getBitmap(); 32 33 //爲Bitmap添加水印 34 Bitmap bitmap=createWatermark(bm, "www.cnblogs.com/zzw1994"); 35 imageView.setImageBitmap(bitmap); 36 } 37 38 // 爲圖片target添加水印文字 39 // Bitmap target:被添加水印的圖片 40 // String mark:水印文章 41 private Bitmap createWatermark(Bitmap target,String mark){ 42 int width=target.getWidth(); 43 int height=target.getHeight(); 44 45 Bitmap bitmap=Bitmap.createBitmap(width, height, Config.ARGB_8888); 46 Canvas canvas=new Canvas(bitmap); 47 48 Paint paint=new Paint(); 49 50 //設置水印的顏色 51 paint.setColor(Color.RED); 52 //設置水印字體的大小 53 paint.setTextSize(10); 54 55 //去鋸齒 56 paint.setAntiAlias(true); 57 //獲取原圖片的內容 58 canvas.drawBitmap(target, 0, 0, paint); 59 // 在最下方的左邊位置開始添加水印 60 canvas.drawText(mark, 0, height, paint); 61 62 canvas.save(Canvas.ALL_SAVE_FLAG); 63 canvas.restore(); 64 65 66 return bitmap; 67 } 68 69 }