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");
    }
    }
  • 相关阅读:
    3123123weq
    123132w
    Unable to execute dex: Multiple dex files define 解决方法
    Error: leaving XXXX; does not track upstream.
    repo sync error: .repo/manifests/: contains uncommitted changes
    Can't OPEN Eclipse
    ERROR: Current shell is not /bin/bash, please check. Stop.
    GIT_ERROR: gpg: Can't check signature: public key not found error: could not verify the tag 'v1.12.4'
    GIT_Error: Agent admitted failure to sign —— Permission denied (publickey).
    HTTP 与 SOAP 介绍与关系
  • 原文地址:https://www.cnblogs.com/mahang/p/2144832.html
Copyright © 2011-2022 走看看