• 取得当前屏幕的截图


    取得当前屏幕的截图主要使用了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");
    }
    }
  • 相关阅读:
    HDU
    01字典树模板
    扩展欧几里得和乘法逆元
    HDOJ-1156 Brownie Points II 线段树/树状数组(模板)
    CF-825E Minimal Labels 反向拓扑排序
    CF-831D Office Keys 思维题
    RMQ 解决区间查询问题
    hdu 5073 有坑+方差贪心
    hdu 5074 相邻数和最大dp
    hdu 5078 水题
  • 原文地址:https://www.cnblogs.com/mahang/p/2144832.html
Copyright © 2020-2023  润新知