0

いくつかのリスト項目と対応するアイコンを使用して、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>

そして、これが現在のメニューの外観です (他にもいくつか問題があることはわかっていますが、現時点では問題ではありません)。画像をドラッグ アンド ドロップして全体を表示すると、ストレッチの問題を最もよく確認できます。 スライドアウトメニューの問題

そして、アイコンはどのように見えるはずですか(白い背景に白いアイコンを簡単に表示する方法がわからなかったため、これは灰色です):

アイコン

このように画像がその寸法を超えて引き伸ばされる原因を知っている人はいますか?

4

1 に答える 1

0

コメントで Barry のアドバイスに従います。つまり、各アイテムの a 内にImageView+を使用します。ただし、「リスト項目の高さが小さい」を解決するには、次の属性を に追加してみてください。TextViewLinearLayoutImageView

android:adjustViewBounds="true"

私が間違っていなければ、これにより、ビューの境界が実際にはアスペクト比ではなく画像のコンテンツに基づいていることが効果的に確認されます (つまり、画像自体の最大高さを超えて高さが変更されることはありません)。 「スケーリング」に)。

それが役立つことを願っています(また、少し理にかなっています)。

于 2014-02-12T00:11:20.403 に答える