2010-05-30 57 views
7

我似乎無法讓我的ImageView以其原始大小顯示其源圖像。該ImageView的看起來像這樣:Android:ImageView放大源圖像

<ImageView 
android:id="@+id/Logo" 
android:src="@drawable/logo" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
> 
</ImageView> 

的源圖像是140個像素寬,然而Nexus之一的屏幕,這是寬480個像素,它使用了一半的寬度的上。寬度和高度在px或dp中使用絕對值不會改變任何內容。圖像也看起來非常抗衡從升級。爲什麼會發生這種情況,我該如何預防它?

回答

7

最有可能的是,Android正在擴大圖像,因爲你沒有告訴它你支持大屏幕。添加一個suitable <supports-screens> element到您的清單,看看是否有幫助。

+0

我剛試過你的建議,它肯定與此有關。非常感謝你!如果我使用圖像的尺寸作爲layout_width和layout_height的絕對像素值,則圖像現在具有「正確」尺寸。如果我使用wrap_content,則圖像仍然與之前一樣大,這看起來與使用「dp」作爲尺寸的圖像尺寸相同。我想這只是wrap_content的工作原理。在這種情況下,圖像在具有高密度屏幕的設備(如Nexus)上顯示得太大是有道理的。 – 2010-05-30 13:41:12

+0

還有一點奇怪的是,如果我使用wrap_content作爲layout_width和layout_height,但是使用maxWidth和maxHeight的絕對像素值不起作用。由於無論如何都不鼓勵使用像素尺寸,所以我想知道是否有其他方法可以防止圖像被縮放? – 2010-05-30 13:44:22

+1

無論如何,您可能需要兩個版本的圖像,一個用於中等密度屏幕,另一個用於高密度屏幕。嘗試把你的圖像放在'res/drawable-hdpi /'中,看看是否有幫助。 – CommonsWare 2010-05-30 16:03:43