转载请注明原文地址 http://bajiewuneng.iteye.com/blog/1914565

需要利用view.measure() 金额 view.layout方法,先利用view.setDrawingCachEnabled(true)和view.getDrawingCache()来获取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.view.View;//获取指定Activity的截屏,保存到png文件public class ScreenShot {          private static Bitmap takeScreenShot(Activity activity) {        // View是你需要截图的View        View view = activity.getWindow().getDecorView();        view.setDrawingCacheEnabled(true);        view.buildDrawingCache();        Bitmap b1 = view.getDrawingCache();        // 获取状态栏高度        Rect frame = new Rect();        activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);        int statusBarHeight = frame.top;        System.out.println(statusBarHeight);        // 获取屏幕长和高        int width = activity.getWindowManager().getDefaultDisplay().getWidth();        int height = activity.getWindowManager().getDefaultDisplay()                .getHeight();        // 去掉标题栏 //Bitmap b = Bitmap.createBitmap(b1, 0, 25, 320, 455);        Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height                - statusBarHeight);        view.destroyDrawingCache();        return b;    } // 保存到sdcard      private static void savePic(Bitmap b, String strFileName) {          FileOutputStream fos = null;        try {            fos = new FileOutputStream(strFileName);            if (null != fos) {                b.compress(Bitmap.CompressFormat.PNG, 90, fos);                fos.flush();                fos.close();            }        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }      // 程序入口    public static void shoot(Activity a) {        ScreenShot.savePic(ScreenShot.takeScreenShot(a), Environment.getExternalStorageDirectory()+"/xx.png");    }}

更多相关文章

  1. Android(安卓)Activity中启动另一应用程序的方法,无需类名
  2. Android(安卓)Action静态广播收不到(系统版本8.0)
  3. Cocos2d-x3.0 捕捉Android的菜单键和返回键
  4. Android真机调试 Android.Util.AndroidRuntimeException: You ca
  5. [转] How to clear cookies and cache of webview on Android(安
  6. Android获取View的截图,包括各种Layout的截图
  7. android source code online
  8. Android(安卓)getDecorView用途——屏幕截图
  9. 在Linux下安装Android(安卓)SDK

随机推荐

  1. Android 图片在SD卡及包下的存储
  2. Android Studio打包APK时出现android stu
  3. Android获取当前运行的service
  4. Android处理图片
  5. Android中SDK供第三方调用实现详解
  6. android 记录所有打开的Activity,退出程序
  7. ANDROID Porting系列八、Keymaps and Key
  8. android webview goback 跳过页面302自动
  9. Android底部虚拟按键遮挡应用
  10. Android绘图之SweepGradient(10)