这里有新鲜出炉的精品教程,程序狗速度看过来!
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
这篇文章主要介绍了Android 实现截屏功能的实例的相关资料,这里实现截屏的实例在代码中注释非常清楚,希望能帮助到大家,需要的朋友可以参考下
Android 实现截屏功能的实例
实现代码:
- public class ScreenShot {
- // 获取指定Activity的截屏,保存到png文件
- private static Bitmap takeScreenShot(Activity activity) {
- // View是你需要截图的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;
- Log.i("TAG", "" + statusBarHeight);
- // 获取屏幕长和高
- int width = activity.getWindowManager().getDefaultDisplay().getWidth();
- int height = activity.getWindowManager().getDefaultDisplay().getHeight();
- // 去掉标题栏
- // Bitmap b = Bitmap.createBitmap(b1, 0, 25, 320, 455);
- Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height - statusBarHeight);
- view.destroyDrawingCache();
- return b;
- }
- // 保存到sdcard
- private static void savePic(Bitmap b, String strFileName) {
- FileOutputStream fos = null;
- try {
- fos = new FileOutputStream(strFileName);
- if (null != fos) {
- b.compress(Bitmap.CompressFormat.PNG, 90, fos);
- fos.flush();
- fos.close();
- }
- } catch(FileNotFoundException e) {
- e.printStackTrace();
- } catch(IOException e) {
- e.printStackTrace();
- }
- }
- // 程序入口
- public static void shoot(Activity a) {
- ScreenShot.savePic(ScreenShot.takeScreenShot(a), "sdcard/xx.png");
- }
- }
需要注意的是,shoot方法只能在view已经被加载后方可调用。
或者在 以下方法这里调用。
- @Override
- public void onWindowFocusChanged(boolean hasFocus) {
- // TODO Auto-generated method stub
- super.onWindowFocusChanged(hasFocus);
- ScreenShot.shoot(this);
- }
以上就是Android截屏的实例,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
来源: http://www.phperz.com/article/17/0912/345758.html