Android手机截屏代码,android截屏代码,首先写个工具类:publ
分享于 点击 7633 次 点评:285
Android手机截屏代码,android截屏代码,首先写个工具类:publ
首先写个工具类: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 blocke.printStackTrace();}}compressBitmap(getActivityBitmap(), filePath);}}--------------在activit中使用-----------public class ScreenShotActivity extends Activity {private Button saveBtn;private Activity act;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_photo);saveBtn=(Button) findViewById(R.id.photo_btn);act=this;saveBtn.setOnClickListener(new OnClickListener() {@Overridepublic 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();}}});}}
用户点评