我创建了一个带有自定义xml布局的操作栏,该布局应具有透明背景。它在ICS上应该工作,但在KitKat上它具有灰色背景而不是透明度。任何人都可以帮我解决这个问题,让所有Android版本4及以上的操作栏都透明吗?
这是xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/main_actionbar_layout"
android:background="@android:color/transparent"
android:paddingLeft="5dp"
android:paddingRight="5dp" >
<ImageButton
android:id="@+id/action_menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:background="@android:color/transparent"
android:contentDescription="@string/app_name"
android:padding="5dp"
android:src="@drawable/menu" />
<ImageButton
android:id="@+id/action_settings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@android:color/transparent"
android:contentDescription="@string/app_name"
android:padding="5dp"
android:src="@drawable/settings" />
<ImageButton
android:id="@+id/action_share"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/action_settings"
android:layout_marginRight="5dp"
android:layout_toLeftOf="@+id/action_settings"
android:background="@android:color/transparent"
android:contentDescription="@string/app_name"
android:padding="5dp"
android:src="@drawable/share" />
<com.quanticapps.athan.views.RobotoTextView
android:id="@+id/action_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/app_name"
android:textColor="@android:color/white" />
</RelativeLayout>
以下是我使用的代码:
final ViewGroup actionBarLayout = (ViewGroup) getLayoutInflater()
.inflate(R.layout.main_actionbar, null);
// Set up your ActionBar
final ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setCustomView(actionBarLayout);
// Typeface mTypeface = Typeface.createFromAsset(getAssets(),
// "rockwell.ttf");
title = (TextView) findViewById(R.id.action_title);
share = (ImageButton) findViewById(R.id.action_share);
settings = (ImageButton) findViewById(R.id.action_settings);
menu = (ImageButton) findViewById(R.id.action_menu);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
title.setTextSize(15);
title.setGravity(Gravity.CENTER);
答案 0 :(得分:0)
尝试这些方式..
getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#330000ff")));
答案 1 :(得分:0)
在样式中设置Actionbar属性总是更好。 定义将操作栏背景设置为透明的样式,并将该样式应用于您的活动。这样,您的代码就可以免于处理UI和逻辑。