Android 实现截屏功能的实例
Android实现截屏功能的实例
实现代码:
publicclassScreenShot{
//获取指定Activity的截屏,保存到png文件
privatestaticBitmaptakeScreenShot(Activityactivity){
//View是你需要截图的View
Viewview=activity.getWindow().getDecorView();
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmapb1=view.getDrawingCache();
//获取状态栏高度
Rectframe=newRect();
activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
intstatusBarHeight=frame.top;
Log.i("TAG",""+statusBarHeight);
//获取屏幕长和高
intwidth=activity.getWindowManager().getDefaultDisplay().getWidth();
intheight=activity.getWindowManager().getDefaultDisplay()
.getHeight();
//去掉标题栏
//Bitmapb=Bitmap.createBitmap(b1,0,25,320,455);
Bitmapb=Bitmap.createBitmap(b1,0,statusBarHeight,width,height
-statusBarHeight);
view.destroyDrawingCache();
returnb;
}
//保存到sdcard
privatestaticvoidsavePic(Bitmapb,StringstrFileName){
FileOutputStreamfos=null;
try{
fos=newFileOutputStream(strFileName);
if(null!=fos){
b.compress(Bitmap.CompressFormat.PNG,90,fos);
fos.flush();
fos.close();
}
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
}
//程序入口
publicstaticvoidshoot(Activitya){
ScreenShot.savePic(ScreenShot.takeScreenShot(a),"sdcard/xx.png");
}
}
需要注意的是,shoot方法只能在view已经被加载后方可调用。
或者在 以下方法这里调用。
@Override
publicvoidonWindowFocusChanged(booleanhasFocus){
//TODOAuto-generatedmethodstub
super.onWindowFocusChanged(hasFocus);
ScreenShot.shoot(this);
}
以上就是Android截屏的实例,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!