Android:半透明覆盖?

Posted

技术标签:

【中文标题】Android:半透明覆盖?【英文标题】:Android: Semi Transparent Overlay? 【发布时间】:2015-10-14 22:23:58 【问题描述】:

我正在尝试在布局顶部添加“半透明”叠加层。我想保持下面的布局不变,只需在上面添加这个视图。

目前我正在使用背景设置为包含透明颜色的可绘制文件的 imageView:

  <?xml version="1.0" encoding="UTF-8"?>

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#80FF0000"/>
    <stroke android:
        android:color="#80FF0000" />
    <corners android:radius="5dip"/>
    <padding android:left="2dip" android:top="2dip" android:right="2dip" android:bottom="2dip" />
</shape>

和布局:

 <ImageView
    android:layout_
    android:layout_
    android:id="@+id/imageView10"
    android:background="@drawable/building_block_trans_red"
    android:layout_alignParentLeft="true"
    android:layout_alignParentBottom="true"
    android:layout_alignParentTop="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />

但是....它在 Android Studio 中运行良好,并在布局顶部显示半透明覆盖,但是当我在手机上加载它时没有覆盖?

请指导我了解我所缺少的内容?

编辑 1: 项目的完整 xml 文件。

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/OdasRelativeLayoutNoData"
    android:layout_
    android:layout_
    android:background="@drawable/building_block"
    android:padding="3dp"
    android:orientation="vertical" >

    <RelativeLayout
        android:layout_
        android:layout_
        android:id="@+id/OdasSideBarLayoutNoData"
        android:layout_alignParentTop="true"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true">

        <LinearLayout
            android:orientation="vertical"
            android:layout_
            android:layout_
            android:background="@drawable/building_block_light"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:id="@+id/linearLayout16"
            android:layout_alignParentLeft="true">

            <TextView
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:gravity="bottom|center_horizontal"
                android:layout_gravity="bottom|center_horizontal"
                android:id="@+id/textView34"
                android:text="@string/odasBuoy"
                android:background="@drawable/tidal_header"
                android:textSize="25dp"
                android:textColor="#ffffff"
                android:textStyle="bold"
                android:typeface="sans"
                tools:ignore="SpUsage" />

            <ImageView
                android:id="@+id/icon2"
                android:layout_
                android:layout_
                android:layout_gravity="top|center_horizontal"
                android:layout_weight="1"
                android:scaleType="fitXY"
                android:background="@drawable/ic_odas1" />

        </LinearLayout>

    </RelativeLayout>

    <!-- AutoResize Class handles text size so it fills the available space -->
    <com.prowapps.seaport.AutoResizeTextView
        android:layout_
        android:layout_
        android:gravity="start|fill"
        android:text="@string/OdasInfo"
        android:typeface="sans"
        android:textColor="#ffffff"
        android:layout_marginLeft="5dp"
        android:id="@+id/textView35"
        android:layout_centerVertical="true"
        android:layout_toRightOf="@+id/OdasSideBarLayoutNoData"
        android:layout_alignParentRight="true"
        android:padding="2dp" />

    <View
        android:layout_
        android:layout_
        android:background="@drawable/building_block_red" />

</RelativeLayout>

【问题讨论】:

@pgiitu 我现在已经添加了整个 xml 文件。 【参考方案1】:

您也可以简单地使用视图来代替 ImageView 和 Shapefile。

<View
    android:layout_
    android:layout_
    android:background="#80FF0000"/>

您也不需要layout_align 语句,因为您的视图覆盖了整个屏幕。

【讨论】:

您好,感谢您的建议。我已经尝试过了,但不幸的是它并没有解决问题。我现在还在我的问题中包含了整个 xml 文件。谢谢。 仅供参考,布局是列表视图的自定义视图。这会影响它为什么不显示叠加层吗?【参考方案2】:

通过我的library,您可以创建具有自定义透明级别的叠加层。 gif 预览 -

【讨论】:

以上是关于Android:半透明覆盖?的主要内容,如果未能解决你的问题,请参考以下文章

推送视图控制器中的半透明导航栏覆盖?

markdown 半透明覆盖图像

Android 半透明状态栏但非半透明导航栏(如果存在)

创建半透明覆盖以模仿 UIAlertView 或 UIActionSheet?

iphone 4 链接在触摸时创建红色半透明背景/覆盖:活动

Android:半透明状态栏不适用于 Google Maps API