细节:
我正在扩展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的背景颜色?
这是如何改变操作栏的颜色。
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);
根据文档-“你可以用ActionBar API控制操作栏的行为和可见性,这是在Android 3.0 (API级别11)中添加的。”
因此,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”为应用程序/活动的主题。
我也遇到了同样的问题,当我输入代码时,我的动作栏会变成灰色。你最初的样式表可能是这样的:
<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>
我还介绍了如何编辑文本颜色。同样,不需要改变资源周围的任何东西。
时