295

詳細:

ActionBarActivityを拡張しています。
EclipseとSDKは、2011年11月6日時点で完全にパッチが適用されています。

<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="14" />  

Android2.3.3
アプリケーションでSamsungデバイスにデプロイされましたandroid:theme="@android:style/Theme.Light"

問題:アプリケーションは明るいですが、ActionBarは青色で、灰色のアイコンがあり、青色の背景色に対してほとんど見えません。また、ActionBarを明るくして、灰色のアイコンが見やすくなるようにします。

私はスタイルを変更しようとしましたが、役に立ちませんでした。
私はおそらく些細なことを見逃しています。

XMLを使用してActionBarActivityのActionBarの背景色を変更するにはどうすればよいですか?

4

21 に答える 21

538

ドキュメントによると、「Android 3.0(APIレベル11)で追加されたActionBar APIを使用して、アクションバーの動作と表示を制御できます。」

そのため、ActionBarは、APIレベル10(Android 2.3.3)のターゲット環境では機能しません。

念のため、最小APIレベル11をターゲットにしている場合は、次のようにカスタムスタイルを定義することで、ActionBarの背景色を変更できます。

<resources>
    <style name="MyTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/MyActionBar</item>
    </style>

    <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
        <item name="android:background">ANY_HEX_COLOR_CODE</item>
    </style>
</resources>

そして、アプリケーション/アクティビティのテーマとして「MyTheme」を設定します。

于 2012-02-12T14:51:29.033 に答える
216

これを試して

ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable("COLOR"));
于 2011-11-06T02:18:52.970 に答える
127

これを試して:

ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#0000ff")));
于 2013-06-23T14:40:03.363 に答える
70

これを使用してください-http://jgilfelt.github.io/android-actionbarstylegenerator/

ライブプレビューでアクションバーをカスタマイズできる素晴らしいツールです。

私は以前の答えを試しましたが、タブや文字などの他の色を変更するのに常に問題があり、何時間もかけて調整していました。このツールは、ほんの数分でデザインを完成させるのに役立ちました。

これがツールのスクリーンショットです

ではごきげんよう!:)

于 2014-01-28T23:22:44.983 に答える
58

同じ問題が発生し、そのコードを入力するとアクションバーが灰色になりました。元のスタイルシートは次のようになっている可能性があります。

<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
    <!-- API 14 theme customizations can go here. -->
</style>

「DarkActionBar」は、アクションバーを灰色に保つものでした。私はそれをこれに変更しました、そしてそれは働きました:

<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
    <!-- API 14 theme customizations can go here. -->
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">#2aa4cd</item>
    <item name="android:titleTextStyle">@style/Theme.MyAppTheme.ActionBar.TitleTextStyle</item>
</style>        

<style name="Theme.MyAppTheme.ActionBar.TitleTextStyle" parent="android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textColor">#FFFFFF</item>
</style>    

また、テキストの色を編集する方法も紹介しました。また、リソースを取り巻くものを変更する必要はありません。

-ウォーレン

于 2013-05-13T00:43:27.583 に答える
39

アクションバーの動作は、API<11でも変更できます。

参考のためにAndroidの公式ドキュメントを参照してください

でアプリを作成してminSdkVersion = "9"targetSdkVersion = "21"ますが、アクションバーの色を変更しましたが、APIレベル9で正常に動作します

これがxmlです

res/values/themes.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- the theme applied to the application or activity -->
    <style name="CustomActionBarTheme"
           parent="@style/Theme.AppCompat.Light.DarkActionBar">
        <item name="android:actionBarStyle">@style/MyActionBar</item>

        <!-- Support library compatibility -->
        <item name="actionBarStyle">@style/MyActionBar</item>
    </style>

    <!-- ActionBar styles -->
    <style name="MyActionBar"
           parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
        <item name="android:background">@color/actionbar_background</item>

        <!-- Support library compatibility -->
        <item name="background">@color/actionbar_background</item>
    </style>
</resources>

必要なアクションバーの色を設定します

res/values/colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="actionbar_background">#fff</color> //write the color you want here
</resources>

アクションバーの色は.classファイルで定義することもできます。スニペットは

ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#0000ff")));

ただし、これAPI <11では機能しないため、アクションバーのスタイル設定はxmlAPI<11の唯一の方法です。

于 2015-01-08T19:03:40.903 に答える
21

この行にカラーコードを直接追加します

getSupportActionBar().setBackgroundDrawable(
    new ColorDrawable(Color.parseColor("#5e9c00")));

毎回ActionBarオブジェクトを作成する必要はありません...

于 2016-06-08T11:29:39.997 に答える
15

Nexus 4のユーザーでは、これにより色が灰色になるようです。

ActionBar bar = getActionBar(); // or MainActivity.getInstance().getActionBar()
bar.setBackgroundDrawable(new ColorDrawable(0xff00DDED));
bar.setDisplayShowTitleEnabled(false);  // required to force redraw, without, gray color
bar.setDisplayShowTitleEnabled(true);

(すべてこの投稿の功績ですが、コメントに埋もれているので、ここに表示したいと思います) https://stackoverflow.com/a/17198657/1022454

于 2014-05-19T03:43:21.177 に答える
14

1行のコードを試してください:

getActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.MainColor)));
于 2015-02-04T10:54:19.563 に答える
7

以下のコードを使用して、アクションバーのテキストとアクションバーの背景に異なる色を提供します。出力するアクティビティに対してマニフェストで以下のテーマを使用します:)

<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:titleTextStyle">@style/TitleBarTextColor</item>
    <item name="android:background">YOUR_COLOR_CODE</item>
</style>

<style name="TitleBarTextColor" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textColor">YOUR_COLOR_CODE</item>
</style>
于 2014-08-21T08:44:43.577 に答える
6

これは、アクションバーの色を変更する方法です。

import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Build;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;


public class ActivityUtils {

public static void setActionBarColor(AppCompatActivity appCompatActivity, int colorId){
    ActionBar actionBar = appCompatActivity.getSupportActionBar();
    ColorDrawable colorDrawable = new ColorDrawable(getColor(appCompatActivity, colorId));
    actionBar.setBackgroundDrawable(colorDrawable);
}

public static final int getColor(Context context, int id) {
    final int version = Build.VERSION.SDK_INT;
    if (version >= 23) {
        return ContextCompat.getColor(context, id);
    } else {
        return context.getResources().getColor(id);
    }
}
}

MainActivity.javaから、アクションバーの色を次のように変更します

    ActivityUtils.setActionBarColor(this, R.color.green_00c1c1);
于 2017-05-25T09:00:49.123 に答える
5

アクティビティを拡張する場合は、次のコードを使用してください

ActionBar actionbar = getActionBar();
actionbar.setBackgroundDrawable(new ColorDrawable("color"));

AppCompatActivityを拡張する場合は、次のコードを使用してください

ActionBar actionbar = getSupportActionBar();
actionbar.setBackgroundDrawable(new ColorDrawable("color"));
于 2018-03-14T06:00:50.793 に答える
4

2021:廃止予定のないKotlinワンライナー:

supportActionBar?.setBackgroundDrawable(ColorDrawable(ContextCompat.getColor(this,R.color.red)))

onCreateに入れるだけで、必要に応じて色を変更できます

于 2021-04-15T16:27:01.333 に答える
3

これは私にとって、AppCompatActivityにとってはうまくいきました。

    <item name="actionBarStyle">@style/BlackActionBar</item>
</style>

<style name="BlackActionBar" parent="@style/Widget.AppCompat.ActionBar.Solid">
    <item name="background">@android:color/black</item>
    <item name="titleTextStyle">@style/BlackActionBarTitleTextStyle</item>
</style>

<style name="BlackActionBarTitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textColor">@android:color/white</item>
    <item name="android:fontFamily">@font/cinzel_decorative</item>
</style>
于 2019-02-28T18:07:18.730 に答える
2

このコードは役立つかもしれません

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
    <!-- Customize your theme here. -->
</style>
<style name="Theme.MyTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- customize the color palette -->
    <item name="colorPrimary">@color/material_blue_500</item>
    <item name="colorPrimaryDark">@color/material_blue_700</item>
    <item name="colorAccent">@color/material_blue_500</item>
    <item name="colorControlNormal">@color/black</item>

</style>
<style name="CardViewStyle" parent="CardView.Light">
    <item name="android:state_pressed">@color/material_blue_700</item>
    <item name="android:state_focused">@color/material_blue_700</item>
    <!--<item name="android:background">?android:attr/selectableItemBackground</item>-->
</style>

于 2015-02-26T11:49:45.377 に答える
2

このオプションがNullPointerExceptionをスローすることがあります

ActionBar actionbar = getActionBar(); actionbar.setBackgroundDrawable(new ColorDrawable("color"));

しかし、このオプションは私のために働いています。だからあなたはこれを試すことができます。

getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#FFFFFF")));

ハッピーコーディング

于 2020-02-04T03:54:58.260 に答える
2

androidxAppCompactを使用している場合。以下のコードを使用してください。

androidx.appcompat.app.ActionBar actionBar = getSupportActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable("Color"));
于 2020-02-15T10:56:27.410 に答える
1

このコードを使用して、アクションバーの背景色を変更します。「res/values / themes.xml」を開き(存在しない場合は作成します)、追加します

<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
       parent="@android:style/Theme.Holo.Light.DarkActionBar">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
 <!-- ActionBar styles -->
<style name="MyActionBar"
       parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
    <item name="android:background">@drawable/actionbar_background</item>
</style>

注:このコードは、Android3.0以降のバージョンでのみ機能します

于 2015-09-29T14:01:03.027 に答える
1

API21以降を使用している人にとっては非常に簡単です。以下のこのコードを使用してください

ダークアクションバー用

<resources>
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="android:background">@color/colorDarkGrey</item>
</style>

for_LightActionBar

<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.ActionBar">
    <item name="android:background">@color/colorDarkGrey</item>
</style>
于 2019-12-22T08:54:45.310 に答える
0

これを使用して、それは動作します。

ActionBar actionbar = getActionBar();
actionbar.setBackgroundDrawable(new ColorDrawable("color"));
于 2016-08-24T05:19:16.780 に答える
-2
getActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.TabColor)));

color.xmlファイル:

<resources> <color name="TabColor">#11FF00</color> </resources>`
于 2015-12-30T18:32:57.053 に答える