protected voID onPause() { // Todo auto-generated method stub super.onPause(); linearLayout v = (linearLayout) findVIEwByID(R.ID.mainLayout); v.setDrawingCacheEnabled(true); // this is the important code :) // Without it the vIEw will have a // dimension of 0,0 and the bitmap will // be null v.measure(MeasureSpec.makeMeasureSpec(0,MeasureSpec.UnspecIFIED),MeasureSpec.makeMeasureSpec(0,MeasureSpec.UnspecIFIED)); //v.layout(0,v.getMeasureDWIDth(),v.getMeasuredHeight()); v.layout(0,v.getWIDth(),v.getHeight()); v.buildDrawingCache(true); Bitmap bm = Bitmap.createBitmap(v.getDrawingCache()); v.setDrawingCacheEnabled(false); // if (bm != null) { try { String path = Environment.getExternalStorageDirectory() .toString(); OutputStream fOut = null; file file = new file(path,"screentest.jpg"); fOut = new fileOutputStream(file); bm.compress(Bitmap.CompressFormat.JPEG,85,fOut); fOut.flush(); fOut.close(); Log.e("ImagePath","Image Path : " + MediaStore.Images.Media.insertimage( getContentResolver(),file.getabsolutePath(),file.getname(),file.getname())); } catch (Exception e) { e.printstacktrace(); } }}
这段代码对我来说很好,但我需要在屏幕加载完成后捕获屏幕.
我也尝试了onPostCReate(),但一切都是徒劳的..
我也尝试在onPause()方法中调用代码,但由于动画,屏幕从右侧和底部部分进行了一些调整…所以我甚至不能去…
现在轮到你分享你的专业知识了..
任何建议都非常感谢!!!!
解决方法 试试这个:public voID onCreate(Bundle savedInstanceState) { linearLayout v = (linearLayout) findVIEwByID(R.ID.mainLayout); v.setDrawingCacheEnabled(true); v.post(new Runnable() { public voID run() { // Code to take screenshot }); }}总结
以上是内存溢出为你收集整理的android – 代码中的屏幕截图全部内容,希望文章能够帮你解决android – 代码中的屏幕截图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)