AndroidStudio中设计背景时,如何使所有子视图保持不透明,而其父视图透明
How to makes all of child view remain untransparent while its parent view transparent when designing background in Android Studio
我打算制作一个包含我自己的 gradient-handmade-background 透明背景的父视图,它已成功应用于我的 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 的代码,一个手工制作的渐变背景,其中包含用于 [= 背景的渐变两种颜色27=] 文件
<?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。只需将此值设置为您需要的任何透明度
我打算制作一个包含我自己的 gradient-handmade-background 透明背景的父视图,它已成功应用于我的 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 的代码,一个手工制作的渐变背景,其中包含用于 [= 背景的渐变两种颜色27=] 文件
<?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。只需将此值设置为您需要的任何透明度