转载请注明出处:http://blog.csdn.net/fishle123/article/details/50790835
有时候我们需要保存某个Activity的截图,下面介绍两种方法。
1)使用view的getDrawingCache来获取当前Activity的截图
<strong> </strong> private static String TAG = "--->";
private static final String SCREEN_SHOT_DIR = "TestScreenShot";
private static String FILE_NAME_PRE = "ScreenShot";
// 获取指定Activity的截屏,保存到png文件
/**
* @param activity
* @return
*/
@SuppressWarnings("deprecation")
private static Bitmap takeScreenShot(Activity activity) {
// View是你需要截图的View,这样保存的是当前APP的整个截图,因此使用DecorView,如果是某个子控件,可以通过findViewById找到对应的View
View view = activity.getWindow().getDecorView();
boolean isCacheEnable = view.isDrawingCacheEnabled();
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap bmp = view.getDrawingCache();
// 获取状态栏高度
Rect frameRect = new Rect();
view.getWindowVisibleDisplayFrame(frameRect);
int statusBarHeight = frameRect.top;
// 获取屏幕长和高
int width;
int height;
Display display = activity.getWindowManager().getDefaultDisplay();
if (Build.VERSION.SDK_INT > 12) {
Point point = new Point();
display.getSize(point);
width = point.x;
height = point.y;