Android手机截屏代码
2018-07-20 来源:open-open
首先写个工具类: public class ScreenShotTool { private Activity activity; public ScreenShotTool(Activity activity) { this.activity = activity; } public Bitmap getActivityBitmap() { /**取得DecorView,这个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; /**获取屏幕宽和高*/ int width = activity.getWindowManager().getDefaultDisplay().getWidth(); int height = activity.getWindowManager().getDefaultDisplay().getHeight(); /**保存前去掉标题栏*/ Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height - statusBarHeight); /**清除缓存*/ view.destroyDrawingCache(); return b; } /**保存到本地*/ private void compressBitmap(Bitmap b, File filePath) { FileOutputStream fos = null; try { fos = new FileOutputStream(filePath); if (null != fos) { /**对图片进行压缩*/ b.compress(Bitmap.CompressFormat.PNG, 100, fos); fos.flush(); fos.close(); } } catch (Exception e) { e.printStackTrace(); } } public void saveScreenshopBitmap(File filePath) { if (filePath == null) { return; } if (!filePath.exists()) { try { filePath.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } compressBitmap(getActivityBitmap(), filePath); } } --------------在activit中使用----------- public class ScreenShotActivity extends Activity { private Button saveBtn; private Activity act; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_photo); saveBtn=(Button) findViewById(R.id.photo_btn); act=this; saveBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { /**保存路径*/ String savePath = Environment.getExternalStorageDirectory()+"/ldm/myImages"; try { File filePath = new File(savePath); if(!filePath.exists()){ filePath.mkdirs(); } /**文件路径*/ String filepath = savePath + "/today.png"; File file = new File(filepath); if (!file.exists()) { file.createNewFile(); } /**把当前Activity截屏,也可以传入其它Activity*/ new ScreenShotTool(act).saveScreenshopBitmap(file); }catch(Exception e){ e.printStackTrace(); } } }); } }
标签: isp
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
上一篇: Python中线程池的实现(三)
下一篇:IOS中DES与MD5加密方案
最新资讯
热门推荐