44

Holo Light テーマを継承し、ActionBar の背景を次のようにカスタマイズしました。

styles.xml の内容

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="ActionBar" parent="@android:style/Widget.Holo.ActionBar">
<item name="android:background">@drawable/actionbar_background</item>
</style>
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/ActionBar</item>
</style>
</resources>

actionbar_background.xml の内容

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@raw/actionbar_background"
android:tileMode="repeat" />

繰り返される代わりに、画像が引き伸ばされます。なぜ android:tileMode="repeat" が適用されないのですか?

前もって感謝します

4

5 に答える 5

43
Drawable d=getResources().getDrawable(R.drawable.background_image_name);  
getActionBar().setBackgroundDrawable(d);

上記のコードは、アクションバーの背景画像を設定します。
それが役に立てば幸い。

于 2012-12-07T07:40:00.653 に答える
43

#android-dev IRC チャンネルの Romain Guy に感謝します。これはハニカム/Android 3.0 の既知のバグであり、次のリリースで修正される予定です。それ以来、唯一の解決策はコードから行うことであり、それは機能します:-)

 final ActionBar actionBar = getActionBar(); 
 BitmapDrawable background = new BitmapDrawable (BitmapFactory.decodeResource(getResources(), R.raw.actionbar_background)); 
 background.setTileModeX(android.graphics.Shader.TileMode.REPEAT); 
 actionBar.setBackgroundDrawable(background);
于 2011-05-03T06:12:16.497 に答える
5

このことは簡単にできます。アクション バーの背景画像を変更する場合は、このコードを res/styles.xml ファイルに配置します。

 <style name="Theme.MyAppTheme" parent="@android:style/Theme.Holo">
        <item name="android:actionBarStyle">@style/Theme.MyAppTheme.ActionBar</item>
    </style>

    <style name="Theme.MyAppTheme.ActionBar" parent="@android:style/Widget.Holo.ActionBar">
        <item name="android:background">@drawable/top_black_bg</item>
    </style>

このためには、「drawable」フォルダーから画像を選択する必要があります。ここでは、画像「tp_black_bg.png」を選択します

その後、このテーマを AndroidManifest.xml ファイルに宣言することを忘れないでください

    <application
        .
        .
        .
        android:theme="@style/Theme.MyAppTheme" >.............</application>

これで、任意の XML レイアウト ファイルを再度開くことができるようになり、その効果を簡単に確認できます。同様に、ActionBar の背景色も変更できます。

ありがとう。

于 2013-12-31T11:26:35.647 に答える
3
mActionBar.setBackgroundDrawable(getResources().getDrawable(R.drawable.navbar));
于 2015-03-10T02:09:40.090 に答える
2

下位互換性のために android.support.v7 の getSupportActionBar() を使用します。

于 2015-01-23T11:03:22.773 に答える