我已经高低搜索了答案,但我完全被这里难过了。
我有一个我在XML布局中创建的ImageView。
<ImageView
android:id="@+id/imgProfilePicture"
android:layout_width="@dimen/image_size"
android:layout_height="@dimen/image_size"
android:layout_margin="5dp"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:scaleType="fitXY"
/>
当我的应用运行时,我通过异步任务下载Facebook个人资料图像,并将图像存储在设备的内部存储器中供以后使用。创建活动后,我将内部存储器中的图片作为位图抓取,并使用适当的缩放设置图像视图位图(请注意,我为自己的用途制作了自定义Logger
和FileHandler
):
Logger.WriteLog(mClassName, subMethodName, "Setting User Profile Image");
FileHandler fileHandler = new FileHandler(getApplicationContext());
Bitmap bitmap = fileHandler.LoadPicture("UserProfileImage");
imgProfilePicture.setImageBitmap(Bitmap.createScaledBitmap(bitmap, imgProfilePicture.getLayoutParams().width, imgProfilePicture.getLayoutParams().height, false));
我可以稍后验证图片是否存在:
if (imgProfilePicture.getDrawable() == null)
{
Logger.WriteLog(mClassName, mMethodName,"No drawable present..." );
}
else
{
Logger.WriteLog(mClassName, mMethodName,"Drawable present..." );
Bitmap bitmap = ((BitmapDrawable)imgProfilePicture.getDrawable()).getBitmap();
Logger.WriteLog(mClassName, mMethodName,"Bitmap string = " + bitmap.toString());
}
当我运行调试器并在最后Logger.WriteLog
设置断点时,我能够&#34;查看位图&#34;在调试器控制台中。我没有足够的声誉发布图片,但相信我,它就在那里。我还可以通过Logger.WriteLog(mClassName, mMethodName,"Bitmap string = " + bitmap.toString());
行在logcat中看到位图的ID。
问题是,当我查看用户界面时,图片不存在。
我知道图像放置正确,因为如果我在XML文件中硬编码一个虚拟drawable,它就会显示正常。
有什么想法吗?