Android截取当前屏幕保存到外部设备上
来源:互联网 发布:淘宝已购买的宝贝不见 编辑:程序博客网 时间:2024/05/06 14:16
要保存屏幕首先要获取当前窗口信息,再以流的形式转成图片写入到文件保存起来,文件的命名可以根据当前时间。
package com.example.capture2sd;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.util.Calendar;import android.app.Activity;import android.content.ContentResolver;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.graphics.Point;import android.os.Bundle;import android.os.Environment;import android.view.Display;import android.view.View;import android.view.View.OnClickListener;import android.view.WindowManager;import android.widget.Button;import android.widget.Toast;/** * 1. 实现截取当前屏幕的功能。 * 2. 把截取的图片保存到个部设备中的某个目录文件夹下面。 * * @author Administrator * */public class MainActivity extends Activity {private Button btn = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);btn = (Button) findViewById(R.id.GetPic);btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubGetAndSaveCurrentImage();}});}/** * 获取和保存当前屏幕的截图 */private void GetAndSaveCurrentImage() {// 1.构建BitmapWindowManager windowManager = getWindowManager();Display display = windowManager.getDefaultDisplay();Point pt = new Point();display.getSize(pt);Bitmap Bmp = Bitmap.createBitmap(pt.x, pt.y, Config.ARGB_8888);// 2.获取屏幕View decorview = getWindow().getDecorView();decorview.setDrawingCacheEnabled(true);Bmp = decorview.getDrawingCache();// 保存路径String SavePath = getSDCardPath() + File.separator + "ScreenImage";FileOutputStream fos = null;// 3.保存Bitmaptry {// 创建目录File path = new File(SavePath);// 文件名String filepath = SavePath + File.separator + getCurTime() + ".png";System.out.println(filepath);File file = new File(filepath);// 目录如果不存在就创建目录if (!path.exists()) {path.mkdirs();}// 文件不存在就创建文件if (!file.exists()) {file.createNewFile();}fos = new FileOutputStream(file);// 把获取的图片写入文件if (null != fos) {Bmp.compress(Bitmap.CompressFormat.PNG, 90, fos);fos.flush();Toast.makeText(this, "截屏文件已保存至:" + path.toString(),Toast.LENGTH_LONG).show();}} catch (Exception e) {System.out.println("----------Exception");try {if (fos != null)fos.close();} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}e.printStackTrace();}}/** * 获取当前时间,以当前时间来作为文件名保存 * * @return */private String getCurTime() {ContentResolver cv = this.getContentResolver();String strTimeFormat = android.provider.Settings.System.getString(cv,android.provider.Settings.System.TIME_12_24);// 判断是不是24小时制if (strTimeFormat.equals("24")) {System.out.println("---------24");} else {System.out.println("---------12");}Calendar c = Calendar.getInstance();int year = c.get(Calendar.YEAR);int month = c.get(Calendar.MONTH);int day = c.get(Calendar.DAY_OF_MONTH);int hour = c.get(Calendar.HOUR_OF_DAY);int minute = c.get(Calendar.MINUTE);int sec = c.get(Calendar.SECOND);// 文件名String strCurr = String.format("%04d%02d%02d_%02d%02d%02d", year,month, day, hour, minute, sec);return strCurr;}/** * 获取外部设备的目录路径功能 */private String getSDCardPath() {File sdcardDir = null;// 判断SDCard是否存在boolean sdcardExist = Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);if (sdcardExist) {sdcardDir = Environment.getExternalStorageDirectory();}return sdcardDir.toString();}}
Demo下载
点击打开链接
- Android截取当前屏幕保存到外部设备上
- android 截取当前屏幕保存到sd卡中
- Android:实现截取当前屏幕图片并保存至SDCard
- 安卓开发截取当前屏幕图片及截取整个ListView图片并保存到本地
- COCOS2DX-3.0截取当前屏幕并在ANDROID上分享
- android截取系统当前屏幕
- 【Android】Android实现截取当前屏幕图片并保存至SDCard
- 截取屏幕并且保存到相册
- Android实现截取当前屏幕图像并保存至SDCard特定目录下
- c#实现截取屏幕并保存到硬盘及显示在界面上
- Android中截取当前屏幕的功能
- Android中截取当前屏幕的功能
- Android中截取当前屏幕的功能
- Android中截取当前屏幕的功能
- Android中截取当前屏幕图片
- Android中截取当前屏幕的功能
- Windows Phone 7 截取当前屏幕保存图像的代码
- C#截取当前屏幕界面作为图片保存
- eclipse for javaEE中发布web到tomcat
- linux VPS java 环境搭建 及Ubuntu 系统配置及内存优化
- c++primer 课后习题个人解答 part1 3.5
- 机器学习的一些开源工具
- [C++_Windows]Git 的文件目录结构
- Android截取当前屏幕保存到外部设备上
- Linux 命令总结
- 从30岁到35岁:为你的生命多积累一些厚度
- c-常用的字符串转换函数
- ubuntu中找不到头文件term.h和curses.h的原因
- UVA 10110(数论)
- Android-防止连续点击事件
- GO API 学习
- 加快java开发速度的几个建议