Android Imageview中获取缓存图片添加水印

来源:互联网 发布:mac常用软件2017 编辑:程序博客网 时间:2024/06/05 16:57




第一个是 Imageview  从下面的Imageview 获取的缓存图片 再添加文字信息

package com.example.imageview;import android.app.Activity;  import android.graphics.Bitmap;  import android.graphics.Canvas;  import android.graphics.Color;  import android.graphics.Paint;   import android.graphics.Typeface;  import android.graphics.Bitmap.Config;  import android.os.Bundle;  import android.text.format.Time;  import android.view.View;  import android.view.View.OnClickListener;  import android.view.Window;import android.widget.Button;  import android.widget.ImageView;    public class MainActivity extends Activity {      private Button btnThum;      private ImageView imgThum;      private ImageView imgSource;        @Override      public void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);//        requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.activity_main);          initViews();      }        private void initViews() {          btnThum = (Button) findViewById(R.id.btn);          imgThum = (ImageView) findViewById(R.id.image1);          imgSource = (ImageView) findViewById(R.id.image2);            btnThum.setOnClickListener(new OnClickListener() {                @Override              public void onClick(View v) {                  Bitmap bitmap = getViewBitmap(imgSource);                  Bitmap bitmap1 = createBitmap(bitmap);                  if (bitmap1 != null) {                      imgThum.setImageBitmap(bitmap1);                  }              }          });      }        /**      * 得到View的缓存图片bitmap     */      private Bitmap getViewBitmap(View v) {     //得到该view是否 设置了绘画缓存     boolean willNotCache = v.willNotCacheDrawing();       // 设置该View绘画 缓存  如果设置true 则不缓存    默认是false开启的          v.setWillNotCacheDrawing(false);     //        int color = v.getDrawingCacheBackgroundColor();  //        v.setDrawingCacheBackgroundColor(0);  //        if (color != 0) {  //        //清除绘画缓存//            v.destroyDrawingCache();  //        }          v.buildDrawingCache();              Bitmap bitmap = Bitmap.createBitmap( v.getDrawingCache());            //清除缓存           v.destroyDrawingCache();          v.setWillNotCacheDrawing(willNotCache);  //        v.setDrawingCacheBackgroundColor(color);            return bitmap;      }        //为图片添加水印       private Bitmap createBitmap(Bitmap src) {          Time t = new Time();          t.setToNow();           int w = src.getWidth();          int h = src.getHeight();          String msg = "温暖的旧时光"+t.hour + ":" + t.minute + ":" + t.second;                  Bitmap bmpTemp = Bitmap.createBitmap(w, h, Config.ARGB_8888);          Canvas canvas = new Canvas(bmpTemp);          Paint paint = new Paint();          String familyName = "宋体";          Typeface font = Typeface.create(familyName, Typeface.BOLD);          paint.setColor(Color.BLUE);          paint.setTypeface(font);          paint.setTextSize(20);          canvas.drawBitmap(src, 0, 0, null);          canvas.drawText(msg, w/2-50, h-50, paint);          return bmpTemp;      }    }


0 0
原创粉丝点击