getDrawingCache()始终返回null

我想使用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是空的

我看到很多关于同样问题的post,但没有适当的解决方案。

我认为我们必须在清单中添加任何权限? 或实现这一目的所需的root权限? 请帮我解决这个问题。

尝试在buildDrawingCache()之前调用getDrawingCache()

编辑:在页面加载后调用getDrawingCache() ,而不是onCreate

在onWindowFocusChanged()中调用getDrawingCache()而不在onCreate()中调用,那么你就不会得到null。

你不能做iv1.buildDrawingCache(true) ; 之前添加行
Bitmap myScreenshot = iv1.getDrawingCache();

 imageview.setBackgroundResource(R.drawable.imageview); imageview1.setBackgroundResource(R.drawable.imageview1); 

使用这两个图像是screan