iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android截屏保存png图片的实例代码
  • 312
分享到

Android截屏保存png图片的实例代码

png图片屏保pngAndroid 2022-06-06 10:06:48 312人浏览 薄情痞子
摘要

代码如下:import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.i

代码如下:
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.util.Log;
import android.view.View;

public class ScreenShot {
    // 获取指定Activity的截屏,保存到png文件
    private static Bitmap takeScreenShot(Activity activity) {
        // View是你需要截图的View
        View 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;
        Log.i("TAG", "" + 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;
    }

    // 保存到sdcard
    private 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) {
        ScreenShot.savePic(ScreenShot.takeScreenShot(a), "sdcard/xx.png");
    }
}

需要注意的是,shoot方法只能在view已经被加载后方可调用。
或者在   
代码如下:
@Override
    public void onWindowFocusChanged(boolean hasFocus) {
        // TODO Auto-generated method stub
        super.onWindowFocusChanged(hasFocus);
        ScreenShot.shoot(this);
    }中调用

您可能感兴趣的文章:Android实现截屏方式整理(总结)android截屏功能实现代码使用python编写android截屏脚本双击运行即可Android 使用shell脚本截屏并自动传到电脑上Android实现截屏并保存操作功能Android 屏幕截屏方法汇总解析android截屏问题android视频截屏&手机录屏实现代码Android截屏SurfaceView黑屏问题的解决办法android实现手机截屏并保存截图功能


--结束END--

本文标题: Android截屏保存png图片的实例代码

本文链接: https://www.lsjlt.com/news/27301.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作