我想使用DrawingCache捕获ImageView的内容。我写了下面的代码。
iv1 = (ImageView)findViewById(R.id.iv1);
iv2 = (ImageView)findViewById(R.id.iv2);
iv1.setDrawingCacheEnabled(true);
Bitmap myScreenshot = iv1.getDrawingCache();
iv2.setImageBitmap(myScreenshot);
但我只能在屏幕上看到一张图片。后来我才知道 myScreenshot 为空
我看到很多关于同样问题的帖子,但没有适当的解决方案。
我认为我们必须在清单中添加任何权限吗?实现这一目标需要root权限?请帮我解决这个问题。
答案 0 :(得分:10)
尝试在buildDrawingCache()
getDrawingCache()
修改强>
在页面加载后调用getDrawingCache()
,而不是onCreate
答案 1 :(得分:2)
在onWindowFocusChanged()中调用getDrawingCache()而不在onCreate()中调用,那么你就不会得到null。
答案 2 :(得分:1)
iv1.buildDrawingCache(true)
;在之前添加行
Bitmap myScreenshot = iv1.getDrawingCache();
答案 3 :(得分:0)
imageview.setBackgroundResource(R.drawable.imageview);
imageview1.setBackgroundResource(R.drawable.imageview1);
使用这两张图片是screan
<RelativeLayout
android:id="@+id/item"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:id="@+id/image"
android:layout_width="320dp"
android:layout_height="486dp"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:background="@drawable/iv1" />
<ImageView
android:id="@+id/ic_launcer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:background="@drawable/iv2" />
</RelativeLayout>