转载自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");}    }}

更多相关文章

  1. Android中Toolbar随着ScrollView滑动透明度渐变效果实现
  2. Android(安卓)ImageView ScaleTypes介绍
  3. Android(安卓)drawable 可绘制资源总结
  4. 运用开源 achartengine 绘制android端的折线图片,多表显示
  5. Android(安卓)Canvas drawArc方法介绍
  6. Android(安卓)OpenGL ES2.0 and GLSL 一个简单的Demo
  7. Android自定义view绘制顺序及相关原理
  8. Android(安卓)3.1 r1 API中文文档(6)——ImageView
  9. Android(安卓)ApiDemos示例解析(53):Graphics->Arcs

随机推荐

  1. 2018年5月05日 Python3-Mysql连接
  2. 数据库Mysql的学习(一)
  3. 解决Myeclipse下Debug出现Source not fou
  4. ORACLE 两表关联更新
  5. MySQL乐观锁在分布式场景下的实践
  6. 求sql存储过程!--创建存储过程统计各仓库
  7. SQL语句的优化
  8. Asp.net中Web.config连接字符串及配置数
  9. yahoo mysql性能监控工具使用
  10. 有可能用by来计算一列的总数吗?