zoukankan      html  css  js  c++  java
  • 取得当前屏幕的截图

    取得当前屏幕的截图主要使用了Bitmap 类里的方法,首相取得一个bitmap 然后用取得的bitmap 去绘制一张图片然后进行保存。

    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.os.Environment;
    import android.util.Log;
    import android.view.View;
    public class ShotScreen {

    private static final String TAG="shotscreen";
    @SuppressWarnings(
    "unused")
    private static Bitmap takeScreenShot(Activity activity){
    View view
    =activity.getWindow().getDecorView();
    view.setDrawingCacheEnabled(
    true);
    view.buildDrawingCache();
    Bitmap bitmap
    = view.getDrawingCache();
    Rect rect
    = new Rect();
    activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
    int statusBarHeight = rect.top;
    System.out.println(statusBarHeight);

    int width =activity.getWindowManager().getDefaultDisplay().getWidth();
    int height =activity.getWindowManager().getDefaultDisplay().getHeight();

    Bitmap bitmap2
    = Bitmap.createBitmap(bitmap,0,statusBarHeight, width, height - statusBarHeight);
    view.destroyDrawingCache();
    return bitmap2;
    }

    @SuppressWarnings(
    "unused")
    private static void savePic(Bitmap bitmap,String filename){
    FileOutputStream fileOutputStream
    = null;
    try {
    fileOutputStream
    = new FileOutputStream(filename);
    if (fileOutputStream != null) {
    bitmap.compress(Bitmap.CompressFormat.PNG,
    90, fileOutputStream);
    fileOutputStream.flush();
    fileOutputStream.close();
    }
    }
    catch (FileNotFoundException e) {
    Log.d(TAG,
    "Exception:FileNotFoundException");
    e.printStackTrace();
    }
    catch (IOException e) {
    Log.d(TAG,
    "IOException:IOException");
    e.printStackTrace();
    }
    }


    /**
    *
    *
    @param a
    */
    public static void shoot(Activity a){
    if (android.os.Environment.MEDIA_MOUNTED != "mounted") {
    ShotScreen.savePic(ShotScreen.takeScreenShot(a),
    "/sdcard/抽样.png");
    }
    else{
    ShotScreen.savePic(ShotScreen.takeScreenShot(a),
    "/data/data/"+a.getPackageName()+"/抽样.png");
    }
    }
  • 相关阅读:
    Id_Name
    注入类型(Injection Type)
    搭建 Spring 2.5.6 开发环境
    模拟Spring框架
    AJAX 学习笔记 2017_05_04
    Gson 转换hibernate级联对象出现StackOverFlow(堆栈溢出)问题
    页面左侧可收缩菜单案例
    struts1.3.10 和 hibernate 3.3.2 一起加载时 出现javax.servlet.ServletException: java.lang.NoSuchMethodError: antlr.collections.A 错误
    1.21 Java基础总结 数组知识
    1.20 Java基础总结 输入数据类型判断 Java低耦合原则 for嵌套思路
  • 原文地址:https://www.cnblogs.com/mahang/p/2144832.html
Copyright © 2011-2022 走看看