Android取得当前屏幕静态布局的截图
16lz
2021-01-26
转载自http://www.android-study.com/pingtaikaifa/97.html,使用后发现只能取得静态布局
Android取得屏幕截图主要使用了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();}}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");} }}
更多相关文章
- Android中Toolbar随着ScrollView滑动透明度渐变效果实现
- Android(安卓)ImageView ScaleTypes介绍
- Android(安卓)drawable 可绘制资源总结
- 运用开源 achartengine 绘制android端的折线图片,多表显示
- Android(安卓)Canvas drawArc方法介绍
- Android(安卓)OpenGL ES2.0 and GLSL 一个简单的Demo
- Android自定义view绘制顺序及相关原理
- Android(安卓)3.1 r1 API中文文档(6)——ImageView
- Android(安卓)ApiDemos示例解析(53):Graphics->Arcs