细节:
我正在扩展ActionBarActivity。
Eclipse和SDK已于2011-11-06完全补丁。
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="14" />
部署到三星设备的Android 2.3.3
应用程序有android:theme="@android:style/ theme。光”
问题:应用程序很轻,但ActionBar是蓝色的灰色图标,在蓝色背景色下几乎看不见。我还想让动作栏变得更轻,这样它们的灰色图标就更明显了。
我试过修改样式,但没有用。
我可能遗漏了一些小事。
如何使用XML更改ActionBarActivity的ActionBar的背景颜色?
Actionbar的行为也可以在api < 11中改变
参考Android官方文档
我正在用minSdkVersion =“9”和targetSdkVersion =“21”构建一个应用程序,我改变了操作栏的颜色,它可以与API级别9正常工作
这是一个xml文件
res /价值/ 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 /价值/ 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,所以在xml中样式化操作栏是API < 11的唯一方法
这是如何改变操作栏的颜色。
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);