TextView中的复合drawable超出了图像大小

时间:2013-10-29 17:59:06

标签: android textview imageview

我正在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>

这就是菜单现在看起来的样子(我知道还有其他几个问题,但现在我不关心这些问题)。拖放图像以获得完整视图时,您可以最好地看到拉伸问题: slide out menu problem

这个图标应该是什么样的(这个是灰色的,因为我不知道如何轻松地在白色背景上看到白色图标):

icon

任何人都知道可能导致图像延伸超过其尺寸的原因吗?

1 个答案:

答案 0 :(得分:0)

我会在评论中遵循Barry的建议,即在ImageView内为每个项目使用TextView + LinearLayout。但是,要解决“列表项的高度较小”,您可以尝试将以下属性添加到ImageView

android:adjustViewBounds="true"

如果我没有弄错,这应该有效地确保视图边界实际上是基于图像的内容,而不是宽高比(即,它不会改变超出最大高度的高度)图像本身由于“缩放”)。

希望有所帮助(也有点意义)。