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。只需将此值设置为您需要的任何透明度