歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android截圖以及加水印Demo

實現一個簡單的截圖功能以及給圖片添加水印的功能,直接上代碼!

Android截圖以及加水印Demo下載地址:

免費下載地址在 http://linux.linuxidc.com/

用戶名與密碼都是www.linuxidc.com

具體下載目錄在 /pub/Android源碼集錦/2011年/10月/Android截圖以及加水印Demo/

一、代碼實現

  1. import android.app.Activity;  
  2. import android.graphics.Bitmap;  
  3. import android.graphics.Canvas;  
  4. import android.graphics.Color;  
  5. import android.graphics.Paint;  
  6. import android.graphics.Typeface;  
  7. import android.graphics.Bitmap.Config;  
  8. import android.os.Bundle;  
  9. import android.text.format.Time;  
  10. import android.view.View;  
  11. import android.view.View.OnClickListener;  
  12. import android.widget.Button;  
  13. import android.widget.ImageView;  
  14.   
  15. public class GetAppThumbnailActivity extends Activity {  
  16.     private Button btnThum;  
  17.     private ImageView imgThum;  
  18.     private ImageView imgSource;  
  19.   
  20.     @Override  
  21.     public void onCreate(Bundle savedInstanceState) {  
  22.         super.onCreate(savedInstanceState);  
  23.         setContentView(R.layout.main);  
  24.         setupViews();  
  25.     }  
  26.   
  27.     private void setupViews() {  
  28.         btnThum = (Button) findViewById(R.id.getThum);  
  29.         imgThum = (ImageView) findViewById(R.id.setThum);  
  30.         imgSource = (ImageView) findViewById(R.id.source);  
  31.   
  32.         btnThum.setOnClickListener(new OnClickListener() {  
  33.   
  34.             @Override  
  35.             public void onClick(View v) {  
  36.                 Bitmap bitmap = getViewBitmap(imgSource);  
  37.                 Bitmap bitmap1 = createBitmap(bitmap, "haha哈哈");  
  38.                 if (bitmap1 != null) {  
  39.                     imgThum.setImageBitmap(bitmap1);  
  40.                 }  
  41.             }  
  42.         });  
  43.     }  
  44.   
  45.     /** 
  46.      * Draw the view into a bitmap. 
  47.      */  
  48.     private Bitmap getViewBitmap(View v) {  
  49.         v.clearFocus();  
  50.         v.setPressed(false);  
  51.   
  52.         boolean willNotCache = v.willNotCacheDrawing();  
  53.         v.setWillNotCacheDrawing(false);  
  54.   
  55.         // Reset the drawing cache background color to fully transparent   
  56.         // for the duration of this operation   
  57.         int color = v.getDrawingCacheBackgroundColor();  
  58.         v.setDrawingCacheBackgroundColor(0);  
  59.   
  60.         if (color != 0) {  
  61.             v.destroyDrawingCache();  
  62.         }  
  63.         v.buildDrawingCache();  
  64.         Bitmap cacheBitmap = v.getDrawingCache();  
  65.         if (cacheBitmap == null) {  
  66.             return null;  
  67.         }  
  68.   
  69.         Bitmap bitmap = Bitmap.createBitmap(cacheBitmap);  
  70.   
  71.         // Restore the view   
  72.         v.destroyDrawingCache();  
  73.         v.setWillNotCacheDrawing(willNotCache);  
  74.         v.setDrawingCacheBackgroundColor(color);  
  75.   
  76.         return bitmap;  
  77.     }  
  78.   
  79.     // 給圖片添加水印   
  80.     private Bitmap createBitmap(Bitmap src, String str) {  
  81.         Time t = new Time();  
  82.         t.setToNow();   
  83.         int w = src.getWidth();  
  84.         int h = src.getHeight();  
  85.         String mstrTitle = "截圖時間:"+t.hour + ":" + t.minute + ":" + t.second;  
  86.         Bitmap bmpTemp = Bitmap.createBitmap(w, h, Config.ARGB_8888);  
  87.         Canvas canvas = new Canvas(bmpTemp);  
  88.         Paint p = new Paint();  
  89.         String familyName = "宋體";  
  90.         Typeface font = Typeface.create(familyName, Typeface.BOLD);  
  91.         p.setColor(Color.BLUE);  
  92.         p.setTypeface(font);  
  93.         p.setTextSize(22);  
  94.         canvas.drawBitmap(src, 00, p);  
  95.         canvas.drawText(mstrTitle, 020, p);  
  96.         canvas.save(Canvas.ALL_SAVE_FLAG);  
  97.         canvas.restore();  
  98.         return bmpTemp;  
  99.     }  
  100.   
  101. }
 
  1. import android.app.Activity;  
  2. import android.graphics.Bitmap;  
  3. import android.graphics.Canvas;  
  4. import android.graphics.Color;  
  5. import android.graphics.Paint;  
  6. import android.graphics.Typeface;  
  7. import android.graphics.Bitmap.Config;  
  8. import android.os.Bundle;  
  9. import android.text.format.Time;  
  10. import android.view.View;  
  11. import android.view.View.OnClickListener;  
  12. import android.widget.Button;  
  13. import android.widget.ImageView;  
  14.   
  15. public class GetAppThumbnailActivity extends Activity {  
  16.     private Button btnThum;  
  17.     private ImageView imgThum;  
  18.     private ImageView imgSource;  
  19.   
  20.     @Override  
  21.     public void onCreate(Bundle savedInstanceState) {  
  22.         super.onCreate(savedInstanceState);  
  23.         setContentView(R.layout.main);  
  24.         setupViews();  
  25.     }  
  26.   
  27.     private void setupViews() {  
  28.         btnThum = (Button) findViewById(R.id.getThum);  
  29.         imgThum = (ImageView) findViewById(R.id.setThum);  
  30.         imgSource = (ImageView) findViewById(R.id.source);  
  31.   
  32.         btnThum.setOnClickListener(new OnClickListener() {  
  33.   
  34.             @Override  
  35.             public void onClick(View v) {  
  36.                 Bitmap bitmap = getViewBitmap(imgSource);  
  37.                 Bitmap bitmap1 = createBitmap(bitmap, "haha哈哈");  
  38.                 if (bitmap1 != null) {  
  39.                     imgThum.setImageBitmap(bitmap1);  
  40.                 }  
  41.             }  
  42.         });  
  43.     }  
  44.   
  45.     /** 
  46.      * Draw the view into a bitmap. 
  47.      */  
  48.     private Bitmap getViewBitmap(View v) {  
  49.         v.clearFocus();  
  50.         v.setPressed(false);  
  51.   
  52.         boolean willNotCache = v.willNotCacheDrawing();  
  53.         v.setWillNotCacheDrawing(false);  
  54.   
  55.         // Reset the drawing cache background color to fully transparent   
  56.         // for the duration of this operation   
  57.         int color = v.getDrawingCacheBackgroundColor();  
  58.         v.setDrawingCacheBackgroundColor(0);  
  59.   
  60.         if (color != 0) {  
  61.             v.destroyDrawingCache();  
  62.         }  
  63.         v.buildDrawingCache();  
  64.         Bitmap cacheBitmap = v.getDrawingCache();  
  65.         if (cacheBitmap == null) {  
  66.             return null;  
  67.         }  
  68.   
  69.         Bitmap bitmap = Bitmap.createBitmap(cacheBitmap);  
  70.   
  71.         // Restore the view   
  72.         v.destroyDrawingCache();  
  73.         v.setWillNotCacheDrawing(willNotCache);  
  74.         v.setDrawingCacheBackgroundColor(color);  
  75.   
  76.         return bitmap;  
  77.     }  
  78.   
  79.     // 給圖片添加水印   
  80.     private Bitmap createBitmap(Bitmap src, String str) {  
  81.         Time t = new Time();  
  82.         t.setToNow();   
  83.         int w = src.getWidth();  
  84.         int h = src.getHeight();  
  85.         String mstrTitle = "截圖時間:"+t.hour + ":" + t.minute + ":" + t.second;  
  86.         Bitmap bmpTemp = Bitmap.createBitmap(w, h, Config.ARGB_8888);  
  87.         Canvas canvas = new Canvas(bmpTemp);  
  88.         Paint p = new Paint();  
  89.         String familyName = "宋體";  
  90.         Typeface font = Typeface.create(familyName, Typeface.BOLD);  
  91.         p.setColor(Color.BLUE);  
  92.         p.setTypeface(font);  
  93.         p.setTextSize(22);  
  94.         canvas.drawBitmap(src, 00, p);  
  95.         canvas.drawText(mstrTitle, 020, p);  
  96.         canvas.save(Canvas.ALL_SAVE_FLAG);  
  97.         canvas.restore();  
  98.         return bmpTemp;  
  99.     }  
  100.   
  101. }
Copyright © Linux教程網 All Rights Reserved