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:半透明覆盖?的主要内容,如果未能解决你的问题,请参考以下文章
创建半透明覆盖以模仿 UIAlertView 或 UIActionSheet?