Android: 屏幕截图
来源:互联网 发布:kruskal贪心算法 编辑:程序博客网 时间:2024/06/15 19:41
获取图片:
/** * 屏幕截屏 * @param activity * @return */public static Bitmap getShot(Activity activity) { // 获取windows中最顶层的view View view = activity.getWindow().getDecorView(); view.buildDrawingCache(); // 获取状态栏高度 Rect rect = new Rect(); view.getWindowVisibleDisplayFrame(rect); int statusBarHeights = rect.top; Display display = activity.getWindowManager().getDefaultDisplay(); // 获取屏幕宽和高 int widths = display.getWidth(); int heights = display.getHeight(); // 允许当前窗口保存缓存信息 view.setDrawingCacheEnabled(true); // 去掉状态栏 Bitmap bmp = Bitmap.createBitmap(view.getDrawingCache(), 0, statusBarHeights, widths, heights - statusBarHeights); // 销毁缓存信息 view.destroyDrawingCache(); return bmp;}
保存图片:
public static void saveImage(Bitmap bmp, String dirName, String fileName) throws IOException { // 判断sd卡是否存在 if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { String storagePath = Environment.getExternalStorageDirectory().toString(); File dir = new File(storagePath, dirName); // 判断文件夹是否存在,不存在则创建 if(!dir.exists()){ dir.mkdir(); } File file = new File(dir.getPath(), fileName); // 判断文件是否存在,不存在则创建 if (!file.exists()) { file.createNewFile(); } FileOutputStream fos = null; try { fos = new FileOutputStream(file); if (fos != null) { // 第一参数是图片格式,第二个是图片质量,第三个是输出流 bmp.compress(Bitmap.CompressFormat.PNG, 100, fos); // 用完关闭 fos.flush(); fos.close(); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}
参考:http://my.oschina.net/neil173352/blog/308353
0 0
- 【转】android屏幕截图
- android屏幕截图
- Android 屏幕截图
- android屏幕截图
- android 屏幕截图
- android屏幕截图
- Android 屏幕截图 代码
- android屏幕截图
- Android平板屏幕截图
- Android 屏幕截图 代码
- Android Surface 屏幕截图
- Android 屏幕截图
- Android 屏幕截图
- android屏幕截图
- Android 屏幕截图
- Android屏幕截图实现
- Android 屏幕截图
- android 屏幕截图
- [Android算法] Android蓝牙开发浅谈
- Android的进程回收机制
- Linux shell脚本——if运算例子
- 数组中出现次数超过一半的数字
- Swift:引入Object-c代码
- Android: 屏幕截图
- IOS开发模块总结(一)本地数据存储1 plist
- 整目录copy
- HTML总结
- test
- nodejs之connect模块
- Linux下开启某个端口
- 开源Hadoop HDFS高可用性介绍、安装与配置
- ASP.NET页面之间传递值的几种方式