如何在 Android Studio 中设计背景时使所有子视图保持不透明,而其父视图保持透明



我的目的是使包含我自己的渐变手工背景背景的父视图透明,并成功应用于我的MainActivity.xml文件中。但是当我尝试在该父视图中放置一个按钮时,这些按钮也会意外地变得透明。如何使我的按钮不透明,而我的父视图保持透明?

这是我的 MainActivity.xml 文件的代码

<LinearLayout
android:layout_height="match_parent"
android:layout_width="match_parent"
android:layout_marginTop="5dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="7dp"
android:layout_marginBottom="7dp"
android:orientation="vertical">
<FrameLayout
android:layout_height="match_parent"
android:layout_width="match_parent"
android:alpha="0.6"
android:background="@drawable/bgutama">
<Button
android:layout_height="30dp"
android:layout_width="match_parent">
</Button>
</FrameLayout>
</LinearLayout>

这是我的bgutama.xml代码,一个渐变手工制作的背景,其中包含渐变的两种颜色,用于我的MainActivity背景.xml文件

<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<gradient
android:startColor="#ff0000"
android:endColor="#0004ff"
android:angle="0"/>
<stroke
android:width="2dip"
android:color="#ff000000"/>
<corners
android:radius="5dip"/>
<padding
android:left="15dip"
android:right="10dip"
android:top="10dip"
android:bottom="10dip"/>
</shape>
</item>

不要为 FrameLayout 设置 alpha。相反,请修改渐变的颜色。例如:

<gradient
android:startColor="#90ff0000"
android:endColor="#900004ff"
android:angle="0"/>
<stroke
android:width="2dip"
android:color="#90000000"/>

请注意我添加到每种颜色开头的"90":这就是 alpha。只需将此值设置为所需的任何透明度即可

相关内容

最新更新