我正在Android应用中创建一个菜单,其中包含多个列表项和相应的图标。我遇到的问题是由于某种原因图标被拉伸超出图像大小。我之前创建了一个这样的菜单没有这样的问题,我基本上将代码复制到这个新项目,主要是只更改图像名称和字符串名称。
以下是单个列表项的菜单布局代码:
<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>
这就是菜单现在看起来的样子(我知道还有其他几个问题,但现在我不关心这些问题)。拖放图像以获得完整视图时,您可以最好地看到拉伸问题:
这个图标应该是什么样的(这个是灰色的,因为我不知道如何轻松地在白色背景上看到白色图标):
任何人都知道可能导致图像延伸超过其尺寸的原因吗?
答案 0 :(得分:0)
我会在评论中遵循Barry的建议,即在ImageView
内为每个项目使用TextView
+ LinearLayout
。但是,要解决“列表项的高度较小”,您可以尝试将以下属性添加到ImageView
:
android:adjustViewBounds="true"
如果我没有弄错,这应该有效地确保视图边界实际上是基于图像的内容,而不是宽高比(即,它不会改变超出最大高度的高度)图像本身由于“缩放”)。
希望有所帮助(也有点意义)。