100、布局转换成图片

 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 }

 

posted on 2016-07-28 12:11  大米稀饭  阅读(379)  评论(0编辑  收藏  举报