Android滚动视图截屏代码

jopen 10年前

在开发过程中,经常要用到分享功能,有时需要截取当前屏幕的画面,一起分享出去。如果当前Activity高度固定,不能滑动,截取屏幕代码网上到处都 是,这里就不贴出了;如果当前Activity嵌套有可滑动子控件,如ScrollView或ListView,想要连未显示的部分一起截下来,前一种方 法就行不通了,这里贴出一段有效代码:

 /**       * 截取scrollview的屏幕       * **/      public static Bitmap getBitmapByView(ScrollView scrollView) {          int h = 0;          Bitmap bitmap = null;          // 获取listView实际高度          for (int i = 0; i < scrollView.getChildCount(); i++) {              h += scrollView.getChildAt(i).getHeight();              scrollView.getChildAt(i).setBackgroundResource(R.drawable.bg3);          }          Log.d(TAG, "实际高度:" + h);          Log.d(TAG, " 高度:" + scrollView.getHeight());          // 创建对应大小的bitmap          bitmap = Bitmap.createBitmap(scrollView.getWidth(), h,                  Bitmap.Config.ARGB_8888);          final Canvas canvas = new Canvas(bitmap);          scrollView.draw(canvas);          // 测试输出          FileOutputStream out = null;          try {              out = new FileOutputStream("/sdcard/screen_test.png");          } catch (FileNotFoundException e) {              e.printStackTrace();          }          try {              if (null != out) {                  bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);                  out.flush();                  out.close();              }          } catch (IOException e) {              // TODO: handle exception          }          return bitmap;      }
来自:http://blog.csdn.net/laoziyueguo3/article/details/19078605