1 package com.view.photo.demo;
2
3 import android.graphics.Bitmap;
4 import android.os.Bundle;
5 import android.os.Environment;
6 import android.support.v7.app.AppCompatActivity;
7 import android.util.Log;
8 import android.view.View;
9 import android.widget.TextView;
10 import java.io.File;
11 import java.io.FileOutputStream;
12 import java.text.SimpleDateFormat;
13 import java.util.Date;
15
16 public class MainActivity extends AppCompatActivity {
18 private TextView txtName2 = null;
19 private String PathUrl = Environment.getExternalStorageDirectory() + "/androidsj/";
20
22 private void changeImage() {
23 //将布局转换为View类型对象
24 View view = getLayoutInflater().inflate(R.layout.activity_main, null);
25
26 txtName2 = (TextView) view.findViewById(R.id.txtName2);
27 txtName2.setText("肯德基,去你大爷22");
28
29 //打开图像缓存
30 view.setDrawingCacheEnabled(true);
31 //必须调用measure和layout方法才能成功保存可视组件的截图到png图像文件
32 //测量View大小
33 view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
34 View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
35 //发送位置和尺寸到View及其所有的子View
36 view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
37
38 try {
39 File file = new File(PathUrl);
40 if (!file.exists()) {
41 file.mkdirs();
42 }
43
44 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
45 String time = dateFormat.format(new Date());
46
47 String BaoBaoUrl = PathUrl + time + ".png";
48 File files = new File(BaoBaoUrl);
49
50 //获得可视组件的截图
51 Bitmap bitmap = view.getDrawingCache();
52 //将截图保存在SD卡根目录的test.png图像文件中
53 FileOutputStream fos = new FileOutputStream(files);
54 //将Bitmap对象中的图像数据压缩成png格式的图像数据,并将这些数据保存在test.png文件中
55 bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
56 //关闭文件输出流
57 fos.close();
58
59 } catch (Exception e) {
60 Log.i("TAG", "changeImage肿么办...." + e.getMessage());
61 }
62 }
64
65 @Override
66 protected void onCreate(Bundle savedInstanceState) {
67 super.onCreate(savedInstanceState);
68
69 changeImage();
70 }
71 }