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");
    }
    }
  • 相关阅读:
    vi
    实用基本程序
    常用排序算法总结
    Windows 远程在Linux下 发布tomcat web程序
    Java 8 函数式编程
    Scanner
    Mysql【JDBC】
    RuntimeError: invalid argument 0: Sizes of tensors must match except in dimension 1 #805
    KeyError: 'module_list.85.Conv2d.weight' #657
    C语言 BIT
  • 原文地址:https://www.cnblogs.com/mahang/p/2144832.html
Copyright © 2011-2022 走看看