去掉Android导航抽屉的半透明效果

8

在我的应用程序中,我正在使用支持库中的导航抽屉。它默认情况下是半透明的,设置它或其子项的背景颜色只会添加该颜色的半透明版本。

这是抽屉和其两个子项:

 <android.support.v4.widget.DrawerLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/black">
<FrameLayout
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
<ListView android:id="@+id/left_drawer_p"
    android:layout_width="500dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:choiceMode="singleChoice"
    android:divider="@android:color/transparent"
    android:dividerHeight="0dp"
    android:background="@color/grey"/>
</android.support.v4.widget.DrawerLayout>
2个回答

13
你想要使用零透明度来setScrimColor
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerLayout.setScrimColor(Color.parseColor("#00FFFFFF"));

其中R.id.drawer_layout是我的DrawerLayout的ID。


5

我不太理解你的问题,但如果你想让导航抽屉透明,请使用以下代码:

android:background="#60FFFFFF"

'60'代表的是大约38%的透明度(16进制中的60对应10进制中的96,所以96/255%)。

但如果您的导航抽屉已经是透明的,则可以使用以下代码:

android:background="#FFFFFF"

它能够正常工作且不透明。

这两种颜色都是HTML中代表白色的颜色代码,你可以通过简单的谷歌搜索找到其他颜色的代码。


抱歉,我在标题中不应该说透明。在ListView中,android:background=@color/grey行会转换为一个十六进制代码,并控制背景颜色。它并非完全透明,而是半透明的;也就是说,我可以看到位于ListView下方的按钮。改变颜色并不能解决这个问题。 - user2651167
1
我知道这有点挑剔,但60不是透明度%。它是十六进制的96,范围从0-255,因此大约是38%的半透明度。 - Dan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接