2011-10-12 48 views
0

我必須爲我的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。我的圖像顯示器都不好看。 如何顯示這些圖像而不會失去清晰度?

回答

2

這個問題不像一個Android問題,因爲它是一個2D圖形問題。目前有許多圖形大師試圖解決你正在遇到的確切問題。

不可能改變圖像尺寸而不會失去原來的保真度。這個問題的真正目的是保真度的損失是否會導致失去清晰度。通常,答案是保真度下降,清晰度也是如此。然而,有許多方法可以緩解這種情況。

作爲一般的經驗法則,您可以將圖像縮小到原始大小的1/2左右,無人爲干擾。完成此操作後,根據圖像的複雜程度(顏色數量),您可能會再縮短一次時間。

或者,您可以將圖像大小升至1.75。您幾乎不會通過再次升級來欺騙系統。

但是,如果更改縱橫比,則所有投注都將關閉。這是因爲它會以其他方式扭曲圖像。在Android中,您可以通過將scaleType屬性值設置爲centerInside來避免更改XML中的縱橫比。這將有相當大的幫助,並保持圖像在界限內。您應該特別爲您的縮略圖ImageView執行此操作,除非您將其設置爲與詳細的ImageView相同的縱橫比。

+0

Hi @Fuzzical Logic,我在''中加了'centerInside'。但圖像不顯示在提到的寬度(289dip),高度(206dip)..它顯示非常小... ' \t \t \t \t \t \t \t \t \t \t ' –

+0

然而,theoriginal是300×360?顯示的實際尺寸是多少?你能得到那個嗎? –

+0

這次我的圖片實際尺寸是800x600 ..它仍然以小尺寸顯示..即使在我的佈局中使用'android:layout_width =「800dip」android:layout_height =「600dip」'..邊距尺寸正在增加,但圖片仍然顯示非常小。看起來像是50x50。 –

1

由於您正在使用這些不同的ImageView更改比率,因此可能需要使用centerInsidecenterCrop進行縮放。

相關問題