我必须为我的ListView显示小的缩略图,在细节屏幕上显示完整的图像。
我在两个布局中使用相同的图像。这是我的列表项<ImageView>
<ImageView android:layout_height="50dip"
android:layout_width="50dip"
android:id="@+id/item_view_img"
android:scaleType="fitXY">
</ImageView>
这是我的详细视图的<ImageView>
<ImageView android:id="@+id/update_details_img"
android:layout_width="289dip" android:layout_height="206dip"
android:src="@drawable/q_silhouette" android:paddingTop="10dp"
android:scaleType="fitXY" android:gravity="center">
</ImageView>
原始图像大小约为300x360。我的两个图像显示器看起来都不好。如何才能在不丢失清晰度的情况下显示这些图像?
发布于 2011-10-13 05:16:45
这个问题与其说是一个Android问题,不如说是一个2D图形问题。目前有许多图形大师试图解决您所遇到的确切问题。
改变图像尺寸而不失去原始图像的保真度是不可能的。真正的问题是,保真度的丧失是否会导致清晰度的丧失。大多数情况下,答案是随着保真度的下降,清晰度也会下降。然而,有许多方法可以缓解这种情况。
作为一般经验法则,您可以将图像缩小到原始大小的1/2左右,而不会出现伪影。完成此操作后,根据图像的复杂性(颜色数量),您通常可能会再次缩小大小。
或者,您可以将图像放大到原始图像的大约1.75。你几乎再也不能通过扩大规模来欺骗系统了。
但是,如果更改纵横比,则所有下注都会关闭。这是因为它会以其他方式扭曲图像。在Android中,您可以通过将scaleType
属性设置为centerInside
值来避免更改XML中的纵横比。这将有相当大的帮助,并将图像保持在边界内。您尤其应该对缩略图ImageView
执行此操作,除非您要将其设置为与详细ImageView
相同的纵横比。
发布于 2011-10-12 18:41:17
由于您要使用这些不同的ImageViews更改比率,因此您可能希望使用centerInside
或centerCrop
进行扩展。
https://stackoverflow.com/questions/7744514
复制相似问题