4

ActionBar を Android アプリに統合しました (実際、下位互換性のために最終的に ActionBarSherlock を使用しました)。

アクティビティに ActionBar を表示するには、特定のテーマのセットを使用する必要があります: ActionBar の Theme.Holo.* または ActionBarSherlock の Theme.Sherlock.*

既存のアクティビティのスタイルが前述の ActionBar テーマのいずれかを使用するように AndroidManifest.xml を変更すると、アクティビティの各ボタンの背景画像が歪むことがわかります。具体的には、画像が実際に含むよりも多くのピクセルにわたって垂直方向に引き伸ばされます。layout_height="fill_parent" を使用している場合にのみ、その動作を期待しますが、そうではありません。さらに、これは他のテーマ (ActionBar 関連のテーマ以外) では発生しないようです。

スクリーンショットを投稿してみましたが、まだ十分な評判がありません。謝罪します。

テーマによって悪影響を受けているボタン宣言の 1 つを次に示します。

<Button
    android:textStyle="bold"
    android:typeface="sans"
    android:layout_height="wrap_content"
    android:id="@+id/btnAddtoBag" android:layout_width="wrap_content"
    android:background="@drawable/add_to_bag_selector">
</Button>

これはセレクターを参照するため、実際の png ファイルが参照されるセレクターの XML も含めます。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:drawable="@drawable/selected_add_to_bag" /> <!-- pressed -->
    <item android:state_focused="true"
          android:drawable="@drawable/selected_add_to_bag" /> <!-- focussed -->
    <item android:drawable="@drawable/default_add_to_bag" /> <!-- default -->
</selector>

最後に、これが発生したときにテーマに適用しているスタイルを次に示します。

<style name="Theme.CustomActionBar" parent="Theme.Sherlock.Light.DarkActionBar.ForceOverflow">
    <item name="actionBarStyle">@style/ActionBar</item>
</style>

<style name="ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
    <item name="android:displayOptions">showHome|useLogo</item>
    <item name="displayOptions">showHome|useLogo</item>     
</style>   
4

1 に答える 1

7

ImageButton を使用して android:src="@drawable/add_to_bag_selector" を設定すると、画像が引き伸ばされてはいけません。

android:backgorund="@android/color/transparent" も設定する必要があります

于 2012-09-17T20:36:24.367 に答える