第一个是 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;
}
}