2013-02-06 128 views
1

如果我在横向模式下启动我的应用程序,getDrawingCache()返回我需要的位图,将方向更改为纵向模式(应用程序正在运行时),getDrawingCache ()返回null。 如果我以纵向模式启动我的应用程序,getDrawingCache()将返回我需要的位图,与哪个方向无关。方法getDrawingCache()返回null取决于纵向或横向模式

这里发生了什么?从风景或肖像启动应用程序有什么区别?为什么它会改变getDrawingCache()方法?

这里是我的代码:

mPlaceHolderBitmap = null; 
if (imageView.getDrawable() != null) { 
    imageView.setDrawingCacheEnabled(true); 
    imageView.buildDrawingCache(true); 
    mPlaceHolderBitmap = imageView.getDrawingCache(true); 
} 

我还试图用getDrawingCache没有布尔或不调用buildDrawingCache但总是相同的。

回答

0

当你改变方向的时候onConfigurationChanged()调用你用过这个方法吗???

+0

不,我不使用这种方法 – Informatic0re

+0

如果你已经允许你的清单上的方向改变,那么当你改变方向时间点去这个方法和你写代码来获取绘图缓存? oncreate()或onResume()? – Prachi

+0

这个方法在2秒后被调用。首先显示一个小尺寸的图像。在2秒钟后加载高质量图像。在加载高质量的同时,小图像被这个drawingCache所替代。在onCreate之后调用2秒。 – Informatic0re

相关问题