android 抓屏

来源:互联网 发布:oracle数据最大长度 编辑:程序博客网 时间:2024/04/30 13:37
category_activity.xml   CategoryActivity.java


android中恶心的getDrawingCache!
    最近要写一个可调整listviewitem的listview,当用户按下listitem的某个区域时,可以上下拖动item并放下时调整listitem的位置。在里面用了getDrawingCache来获取按下的listitem相应的bitmap并放在一个创建的ImageView中,然后在move的时移动ImageView。但发现即使调整的listItem的位置,按下时得到的bitmap也是原来的listitem的bitmap.进行了各种调试也没找到问题所在。最后在一个测试工程中调用了setDrawingCacheEnabled(false)后再setDrawingCacheEnabled(true)发现才能获取到更新后的bitmap!实在是没有想到是要这么做的!


draw(Canvas canvas)
在指定的画布上手动绘制视图(及其子视图)
 private Bitmap screenshots(View paramView)
  {
    Bitmap localBitmap;
    try
    {
      localBitmap = Bitmap.createBitmap(paramView.getWidth(), paramView.getHeight(), Bitmap.Config.ARGB_8888);
      paramView.draw(new Canvas(localBitmap));
      return localBitmap;
    }
    catch (OutOfMemoryError localOutOfMemoryError)
    {
      if (Log.D)
        Log.d("CategoryActivity", " -->> " + localOutOfMemoryError.getMessage());
      localBitmap = null;
    }



  }
  

  Android抓屏源码

http://blog.csdn.net/buleriver/article/details/6754218