android截取屏幕图
16lz
2022-01-25
Java代码
- importjava.io.FileNotFoundException;
- importjava.io.FileOutputStream;
- importjava.io.IOException;
- importandroid.app.Activity;
- importandroid.graphics.Bitmap;
- importandroid.graphics.Rect;
- importandroid.os.Environment;
- importandroid.view.View;
- //获取指定Activity的截屏,保存到png文件
- publicclassScreenShot{
- 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;
- System.out.println(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),Environment.getExternalStorageDirectory()+"/xx.png");
- }
- }
更多相关文章
- android之文件的写入与读取
- Android(安卓)获取ip地址
- android 通过资源文件名称获取资源文件id
- Android如何获取asset目录下所有文件的路径
- Android使用HttpURLConnection获取数据
- Android(安卓)MediaProjection学习(一)之和ImageReader实现屏幕截
- android:通过选择相册或者拍照获取照片
- Android(安卓)setBrightness value
- android获取屏幕分辨率实现