Activity保存成图片,如何将界面Activity保存成本地图片

来源:互联网 发布:幼儿学拼音软件 编辑:程序博客网 时间:2024/04/30 01:28

直接贴代码了

package com.uuid.mvpdemo;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.Rect;import android.view.View;public class ScreenShort {// 获取指定Activity的截屏,保存到png文件private static Bitmap takeScreenShort(Activity activity) {// View是你需要截图的ViewView view = activity.getWindow().getDecorView();view.setDrawingCacheEnabled(true);view.buildDrawingCache();Bitmap b1 = view.getDrawingCache();// 获取状态栏高度Rect frame = new Rect();activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);int statusBarHeight = frame.top;System.out.println(statusBarHeight);// 获取屏幕长和高int width = activity.getWindowManager().getDefaultDisplay().getWidth();int height = activity.getWindowManager().getDefaultDisplay().getHeight();// 去掉标题栏// Bitmap b = Bitmap.createBitmap(b1, 0, 25, 320, 455);Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height- statusBarHeight);view.destroyDrawingCache();return b;}// 保存到sdcardprivate static void savePic(Bitmap b, String strFileName) {FileOutputStream fos = null;try {fos = new FileOutputStream(strFileName);if (null != fos) {b.compress(Bitmap.CompressFormat.PNG, 90, fos);fos.flush();fos.close();}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}// 程序入口public static void shoot(Activity a) {ScreenShort.savePic(ScreenShort.takeScreenShort(a), "sdcard/111111111111111111111.png");}}

在清单文件AndroidManifest.xml 加入sdcard读写权限

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>


0 0
原创粉丝点击