• 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 }
  • 相关阅读:
    mybatis sql in 查询
    js中同一个onclick绑定了两个js方法出现的问题
    异步ztree 加复选框 及相应后台处理
    让delphi程序不受WINDOWS日期格式的影响
    Delphi调用java开发的WebService,传入参数出错
    在Delphi中实现HexToStr函数和StrToHex函数
    最快的安卓模拟器Genymotion
    详解Android中AsyncTask的使用
    JNI之——'cl' 不是内部或外部命令,也不是可执行的程序或批处理文件
    CorePlot学习六---点击scatterPlot中的symbol点时弹出对应的凝视
  • 原文地址:https://www.cnblogs.com/androidsj/p/5714336.html
Copyright © 2020-2023  润新知