避免在ImageView中进行图像缩放

时间:2012-03-02 00:57:32

标签: android android-layout android-widget android-imageview android-view

我正在使用带有这些XML属性的图像视图

<ImageView
    android:id="@+id/widget_list_bitmap"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#00000000"
    android:scaleType="center"
    android:src="@drawable/place_holder" >
</ImageView>

并在运行时我创建一个让我们说400x400的位图,将其保存到文件并使用文件URI设置ImageView src

remoteViews.setUri(R.id.widget_list_bitmap,“setImageURI”,myFileUri);

(这是为了避免大型位图的RemoteViews问题)。

一切正常,但显示的图像按比例缩小并小于400x400,更像是250 x 250(可能是400 /密度,密度= 1.5)。

有没有办法强制ImageView真正不缩放从URI中获取的图像?

1 个答案:

答案 0 :(得分:0)

您可以手动下载它,并在加载BitmapFactory时将inScaled设置为false。然后,您将使用setImageViewBitmap代替setUrisetImageViewUri

<强>更新

不幸的是,我并没有真正看到使用setUri的方法。使用setUri来解决1MB限制的另一种方法是使用setImageViewBitmap但是将位图切片并在多个视图上显示,可能是ImageViews的2x2或3x3网格或类似的东西。您必须使用partiallyUpdateAppWidget将其拆分为多个更新,但我认为它应该可行。问题在于这需要API 11。