2013-10-29 215 views
0

我正在Android應用程序中創建一個菜單,其中包含多個列表項和相應的圖標。我遇到的問題是出於某種原因圖標被拉伸超出圖像大小。我之前創建了一個像這樣的菜單,但沒有這樣的問題,我基本上將代碼複製到這個新項目中,主要只是更改圖像名稱和字符串名稱。在TextView中繪製的複合圖案超出圖像大小

這是從菜單佈局的單一列表項的代碼:

<TextView 
    android:id="@+id/listItemCardTransactions" 
    style="@style/NavigationMenuItem" 
    android:drawableLeft="@drawable/ic_card_transaction_menu_icon_normal" 
    android:text="@string/card_transactions" /> 

這裏是NavigationMenuItem風格:

<style name="NavigationMenuItem"> 
    <item name="android:layout_width">match_parent</item> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:paddingTop">@dimen/menu_list_item_padding</item> 
    <item name="android:paddingBottom">@dimen/menu_list_item_padding</item> 
    <item name="android:paddingLeft">@dimen/menu_list_item_padding</item> 
    <item name="android:drawablePadding">@dimen/menu_list_item_left_padding</item> 
    <item name="android:gravity">center_vertical</item> 
    <item name="android:clickable">true</item> 
    <item name="android:background">@drawable/selector_navigation_item</item> 
    <item name="android:textSize">@dimen/text_size_menu_item</item> 
</style> 

下面是尺寸:

<dimen name="text_size_menu_item">18sp</dimen> 
<dimen name="menu_list_item_padding">6dip</dimen> 
<dimen name="menu_list_item_left_padding">12dip</dimen> 

這裏是菜單看起來像現在(我知道還有其他幾個問題,但這些不是我的濃縮現在就來)。你可以看到最好的伸縮問題,當你拖動和刪除圖像來獲得完整視圖: slide out menu problem

什麼圖標應該看起來像(這個人是灰色的,因爲我不知道如何很容易使白某在白色背景上可見):

icon

任何人都知道可能會導致圖像拉伸過去它的尺寸也是這樣嗎?

+0

我沒有看到任何限制圖像大小的東西,只有填充。因此,圖像會佔用盡可能多的空間。 –

+0

這就是問題 - 圖像佔用的空間比需要更多。您可以看到我發佈的小卡片圖標清晰明瞭,但是如果您展開菜單圖像,則會看到相同的圖像被拉伸出來,從而模糊邊緣。 也許我沒有在我的問題中解釋清楚嗎? – RocketGuy3

+0

如果您想更好地控制圖像的外觀,我建議您在每個項目的LinearLayout中使用ImageView和TextView。 –

回答

0

我會按照巴里的建議在評論中,即使用ImageView + TextViewLinearLayout爲每個項目。然而,解決「列表項的高度較小」,你可以嘗試添加以下屬性到ImageView

android:adjustViewBounds="true" 

如果我沒有記錯,這應該有效地確保視圖邊界實際上是基於圖像的內容,而不是高寬比(即,由於「縮放」,它不會將高度改變超過圖像本身的最大高度)。

希望有幫助(也有點意義)。

相關問題