当前位置:首页 » 安卓系统 » androidactionbar背景

androidactionbar背景

发布时间: 2022-09-22 07:19:54

㈠ 如何使用Java语言修改Action Bar的背景颜色

改变不了颜色是因为你上面的那个程序在主窗口上又加了一个Panel,而你去改变的却是主窗口的背景色,你可以把按钮直接这样写:con.add(redButton);……去掉panel,然后在actionPerformed方法中这样写:frame.getContentPane().setBackground(backgroundcolor);或者你去改变panel的背景色。

当调用startActionMode的时候,actionbar的会被一个新的菜单条所覆盖,这个菜单条被称为Contextual Action Bar,Contextual Action Bar的字体或者背景颜色都是跟当前主题相关的,有时候我们不想用主题默认的颜色,而采用自定义的方式。

如何才能自定义Contextual Action Bar的背景颜色呢?

在主题中修改:

<style name="MyActionBarTheme" parent="@style/Theme.AppCompat.Light">
<item name="android:actionBarStyle">@style/MyActionBar</item>
<item name="android:actionModeCloseDrawable">@drawable/ic_launcher</item>
<item name="android:actionModeBackground">@color/yellow</item>
<!-- ActionMode右边的按钮是一个特殊的CloseButton,分割线与CloseButton的Style有关 -->
<!-- 删除ActionMode的Divider-->
<item name="android:actionModeCloseButtonStyle">@null</item>
</style>

其中actionModeCloseDrawable用于指定左边关闭按钮的图标。而android:actionModeBackground就是Contextual Action Bar的背景色了。

㈡ 如何让android的actionbar浮动且透明

如上图所示,谷歌地图的actionbar是透明的,且浮动在整个布局之上,没有占用布局空间。其实要做到这样的效果,我们首先想到的是两个方面:
1.将让actionbar浮动起来。
2.给actionbar一个背景,可以为颜色也可以为图片。
下面我以背景色为颜色举个例子。
getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);ActionBar actionBar = getActionBar();actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#330000ff")));

google的actionbar是分为上下两栏显示的,上面的代码只能设置顶部actionbar的背景色,为了让下面的背景色一致,还需要添加一行代码:
actionBar.setSplitBackgroundDrawable(newColorDrawable(Color.parseColor("#330000ff")));

如果我们不想在代码中设置actionbar背景,而是在style中修改xml,可以自定义actionbar,然后设置下面三个属性:
<style name="MyActionBar" parent="@android:style/Widget.Holo.ActionBar"> <item name="android:background">@drawable/ab_stacked_solid_inverse_holo</item> <item name="android:backgroundStacked">#346c36</item> <item name="android:backgroundSplit">@drawable/ab_stacked_solid_inverse_holo</item> </style>

其中的background和setBackgroundDrawable对应,backgroundSplit和setSplitBackgroundDrawable对应,而backgroundStacked代表的是actionbar选项卡的背景色。
但是actionbar的背景如果设置为纯色,或者为不透明的图片,那么上面的方法无法使actionbar达到透明的效果。注意上面的代码中,我们的颜色值并不是纯色的而是有一定的透明度。#330000ff的前两位代表透明度。

㈢ android怎么设置状态栏和actionbar同颜色

android 布局 layout relativelayout

除了沉浸模式外,Android 4.4还有新的API,能使应用内的状态栏和虚拟按钮透明。其他更多的Android 4.4 APIs可以看这里。

如果要使应用内的状态栏和虚拟按钮变成透明有两种方法。

一种是代码方式:

?1

2

3Window window = getWindow();

window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION,
WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

另外一种是使用两个新的主题风格:

Theme.Holo.NoActionBar.TranslucentDecor和Theme.Holo.Light.NoActionBar.TranslucentDecor。

但是这种方式只支持Android4.4以上系统,所以为了保持兼容性,我们还是采用代码方式比较好。只需要先判断,如果是4.4以上系统才启用代码。

开启后上下系统栏都透明了。

但是如果应用本身是带有actionbar或者标题栏的话会就会变得比较尴尬,内容会在上面露出来。这个时候需要在布局文件里加入android:fitsSystemWindows="true"。

android:id="@+id/layout"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#c8c8c8" >

android:id="@+id/listview"

android:layout_width="match_parent"

android:layout_height="match_parent" />

但是这样的话内容就不能从透明的虚拟按钮下穿过,没原来那么好看。我们可以按照以前一样把根布局设置一个高度为系统栏高度和ActionBar高度的内边距就可以。

同时关于获取ActionBar和状态栏的高度,发现用原来的方法有时候会获取的值为0。自己google找了一下,找到两个前辈提供的获取高度方法,获取ActionBar高度,获取状态栏高度。

8if (android.os.Build.VERSION.SDK_INT > 18) {

Window window = getWindow();

window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION,
WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

//设置根布局的内边距

RelativeLayout relativeLayout = (RelativeLayout)
findViewById(R.id.layout);

relativeLayout.setPadding(0, getActionBarHeight()+getStatusBarHeight(), 0,
0);

}

27// 获取手机状态栏高度

public int getStatusBarHeight() {

Class c = null;

Object obj = null;

Field field = null;

int x = 0, statusBarHeight = 0;

try {

c = Class.forName("com.android.internal.R$dimen");

obj = c.newInstance();

field = c.getField("status_bar_height");

x = Integer.parseInt(field.get(obj).toString());

statusBarHeight = getResources().getDimensionPixelSize(x);

} catch (Exception e1) {

e1.printStackTrace();

}

return statusBarHeight;

}

// 获取ActionBar的高度

public int getActionBarHeight() {

TypedValue tv = new TypedValue();

int actionBarHeight = 0;

if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))//
如果资源是存在的、有效的

{

actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,
getResources().getDisplayMetrics());

}

return actionBarHeight;

}

接下来,因为我自己写的一些应用是暗色的主题的,会导致透明的状态栏和ActionBar颜色不太协调。看到有一些应用是把状态栏的颜色设置成和ActionBar一样,这种解决方法也不错。

具体是怎么实现的也不太清楚,我自己猜测写了一个差不多状态栏。我是直接在根视图加入一个高度为状态栏高度的TextView,背景设置为和ActionBar一样。具体代码如下:

8// 创建TextView

TextView textView = new TextView(this);

LinearLayout.LayoutParams lParams = new
LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, getStatusBarHeight());

textView.setBackgroundColor(Color.parseColor("#3F9FE0"));

textView.setLayoutParams(lParams);

// 获得根视图并把TextView加进去。

ViewGroup view = (ViewGroup) getWindow().getDecorView();

view.addView(textView);

在模拟器上看还行,但是在实际的手机当中总感觉ActionBar有点过大,所以我在背景色里加入了一些渐变,在实体手机中就比较好看一点,不会觉得ActionBar太宽了。

android:startColor="#c8c8c8"

android:endColor="#3F9FE0"

android:angle="270"

android:type="linear"/>

㈣ 安卓开发android studio中怎样自定义actionbar的布局

1theme是用于application或activity的。首先打开AndroidManifest文件查看,一般application节点都有默认主题,

2接下来打开上图中theme所在的文件。res-->values-->styles。

3打开后。可以看到,name属性正是步骤一中theme的值。在可以看到parent属性的值,parent是用于继承内置样式的。我们接下来要在该样式的基础上修改。

4修改action bar的背景。可以从图中看到,都是一个引用另一个。图中黄色高亮的部分,是为了兼容性,可以看到其实值是相同的。在这个例子中,因为theme的parent是Theme.AppCompat.Light.DarkActionBar真正起作用的是不带‘android:’前缀的语句,是为了支持低版本的兼容包。而带前缀的语句是API 11以上支持的。

5修改布局背景。这个在layout文件中也可以改,不过在application的theme中修改可以应用于所有activity。

㈤ android 怎么在fragment里面改变actionbar的背景色

要修改actionBar ,你要在这个装载fragment的Activity中修改
直接在Activity中,调用getActionBar(); 得到actionBar 再做修改
当然你也可以在fragment调用getActivity().getActionBar() 来得到这个actionBar

㈥ 如何让android的actionbar浮动且透明

在Android3.0之后,Google对UI导航设计上进行了一系列的改革,其中有一个非常好用的新功能就是引入的ActionBar,他用于取代3.0之前的标题栏,并提供更为丰富的导航效果。

一、添加ActionBar
1、不需要导入ActionBar,因为在android3.0或者以上版本中,ActionBar已经默认的包含在Activity中
2、在Android3.0的默认主题“holographic”中,已经创造了ActionBar
3、当android:minSdkVersion 或者 android:targetSdkVersion 属性被设置成11或者更高时,应用会被认为是Android3.0版本(默认含有ActionBar)

二、隐藏ActionBar
1、我们可以通过把主题设置为Theme.Holo.NoActionBar为一个Activity去除掉ActionBar。 2、我们也可以通过在代码中调用show()或者hide()方法来相应的显示或者隐藏ActionBar
3、在我们使用actionBar.hide();方法是系统默认会将ActionBar占用的空间分配给界面,此时显示的界面将会重新绘制。
同样调用actionBar.show();时也会重新绘制界面。如果我们一个程序需要频繁的显示或者隐藏ActionBar的话,这样
就不会有良好的效果。Google提供给一个属性可以让ActionBar浮在界面上,当然你可以让ActionBar的背景为透明,这样会有良好的体验效果。

㈦ android actionbar 如何获取背景

getActionBar().setBackgroundDrawable(this.getBaseContext().getResources().getDrawable(R.drawable.background));
getActionBar().show();

㈧ 如何更改在 Android ActionMode 背景色

如果您想要更改的操作栏的颜色只是,执行此操作:
ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable("COLOR"));

请参阅下面的链接的详细信息
如果您使用 ActionMode 这个样式用于任何 ActionMode。您会需要创建你自己的风格来进行自定义
<style name="Widget.ActionMode">
<item name="android:background">?android:attr/actionModeBackground</item>
<item name="android:backgroundSplit">?android:attr/actionModeSplitBackground</item>
<item name="android:height">?android:attr/actionBarSize</item>
<item name="android:titleTextStyle">@android:style/TextAppearance.Widget.ActionMode.Title</item>
<item name="android:subtitleTextStyle">@android:style/TextAppearance.Widget.ActionMode.Subtitle</item>
</style>

㈨ Android怎么动态更改actionbar的背景颜色

Android动态更改actionbar的背景颜步骤:

在backgroud下面再写一个style,修改values-v14文件夹下的style.xml文件
[html] view plain
<resources xmlns:android="http://schemas.android.com/apk/res/android">

<!--
Base application theme for API 14+. This theme completely replaces
AppBaseTheme from BOTH res/values/styles.xml and
res/values-v11/styles.xml on API 14+ devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
<!-- API 14 theme customizations can go here. -->
<item name="android:actionBarStyle">@style/my_actionbar_style</item>
</style>

<style name="my_actionbar_style" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">#647b97</item>
<item name="android:titleTextStyle">@style/AcBar_titleStyle</item>
[html] view plain
<item name="android:backgroundStacked">#4A708B</item> <!-- 分离成tab时的tab颜色 -->
[html] view plain
<item name="android:backgroundSplit">@color/ab_backgroundSplit_color</item>
</style>
<style name="AcBar_titleStyle">

<item name="android:textColor">#FFFFFF</item>
</style>

</resources>

<item name="android:backgroundSplit">@color/ab_backgroundSplit_color</item> actionbar item
这样就分离在底部时候的颜色。

㈩ Android ActionBar 点击标题有背景色 如何消除

设置title就会提示文字了。
ActionBar 标题栏常用属性:
1. showAsAction属性用来定义每个Action是如何显示的
2. always表示永远显示在ActionBar中,如果屏幕空间不够则无法显示
3. ifRoom表示屏幕空间够的情况下显示在ActionBar中,不够的话就显示在overflow中
4. never则表示永远显示在overflow中

热点内容
创建邮箱地址服务器连接错误 发布:2025-01-13 09:49:24 浏览:723
linux编辑文档 发布:2025-01-13 09:47:51 浏览:435
二手制冷压缩机 发布:2025-01-13 09:43:59 浏览:585
网鱼电脑密码多少 发布:2025-01-13 09:33:46 浏览:463
如何取消子账号密码 发布:2025-01-13 09:22:41 浏览:346
抖音搜索有缓存 发布:2025-01-13 09:17:28 浏览:589
c语言字符数组连接 发布:2025-01-13 08:55:11 浏览:901
国二c语言编程题目 发布:2025-01-13 08:45:41 浏览:285
ipad软件如何加密 发布:2025-01-13 08:28:59 浏览:278
android的文件操作 发布:2025-01-13 08:24:48 浏览:173