5

私がする必要があるのは、背景が指定されておらず、デフォルトの灰色の背景画像が表示されている場合のように、背景画像がボタンの自然なサイズを埋めることです。しかし、代わりに、ボタンはテキストではなく背景画像のサイズに合わせて拡大されます。

以前の質問がありましたが、誰も解決策を持っていませんでした.

ボタン:

ここに画像の説明を入力

<Button
    android:id="@+id/morebtn"
    style="@style/CustomButton"
    android:text="More" />

このカスタム ボタン スタイルがあります (灰色のボタンは 9 パッチです)。

<resources>
    <style name="CustomButton" parent="@android:style/TextAppearance">
        <item name="android:textColor">#FFFFFF</item>
        <item name="android:layout_marginLeft">10dip</item>
        <item name="android:layout_marginRight">10dip</item>
        <item name="android:layout_marginBottom">10dip</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_centerInParent">true</item>
        <item name="android:background">@drawable/greybutton</item>
        <item name="android:textSize">20sp</item>
    </style>
</resources>

現在、wrap_content に指示されているにもかかわらず、画面の幅がいっぱいになります。ボタン スタイルからandroid:backgroundを削除すると、ボタンが縮小してテキストが期待どおりに折り返されます。

私の背景画像がデフォルトのボタンの背景のように振る舞わない理由は誰にも分かりますか?

4

4 に答える 4

2

くそ。9patchに変換されていないhdpiドローアブルがあり、何らかの理由で、mdpi画面でもmdpiドローアブルフォルダーにあるものの代わりに適用されていました。結局のところ、バックグラウンドスケーリングは実際には期待どおりに機能します。ごめん!

(したがって、同様の問題でこの質問を閲覧している場合は、drawablesフォルダーをチェックして、自分が思っているものを描画していることを確認してください。また、9パッチのコンテンツ境界が適切であることを確認することもできます。サイズ。伸縮可能な境界と同じではないことに注意してください。)

于 2011-07-27T21:33:22.860 に答える
1

dip を使用して、ボタンの高さと幅をハードコーディングしてみてください。ボタンのテキストを変更する必要がある場合、これは問題になりますが、ボタンが画像のサイズに拡大しないようにするためには機能するはずです。もちろん、大きな画像はボタンを大きくします.幅/高さはwrap_contentであり、画像は明らかにコンテンツの一部です...幅/高さパラメータをハードコーディングしてみてください.

于 2011-07-27T21:00:32.600 に答える
1

これらの 2 つの項目を CustomButton スタイルに追加します

<item name="android:minWidth">0dp</item> 
<item name="android:minHeight">0dp</item>
于 2014-05-20T12:26:54.247 に答える