如何使背景透明而不影响android studio中的文本

时间:2017-02-05 15:34:23

标签: android android-layout android-studio

我将不透明度设置为屏幕背景。但是由于不透明度添加到背景图像,我的两个按钮正在影响。 请给我解决方案,以删除按钮的不透明度

    android:background="@drawable/handicart_back_1"
        android:alpha="0.7">

        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="LOGIN"
            android:id="@+id/button"
            android:layout_above="@+id/button2"
            android:layout_alignStart="@+id/button2"
            android:alpha="1"/>

        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="SIGNUP"
            android:id="@+id/button2"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="107dp" />
    </RelativeLayout>

`

3 个答案:

答案 0 :(得分:0)

您正在为RelativeLayout设置alpha而非背景。 我只知道以编程方式解决方案:

  1. 获取布局的BackgroundDrawable:

      Drawable d = relativeLayout.getBackground()
    
  2. 为Drawable设置Alpha:

      d.setAlpha(0.7f)
    
  3. 也许再次设置背景(如果需要,不要知道)

    relativeLayout.setBackground(d)
    
  4. 从relativeLayout中删除alpha

答案 1 :(得分:0)

您可以使用此android:background="?android:attr/selectableItemBackground"android:background="@android:color/transparent"(两者都做一些不同的事情)

答案 2 :(得分:0)

你可以尝试这个技巧。我们将alpha设置为图像,其作用类似于背景图片,其宽度和高度设置为匹配父级。并且不要忘记将它放在按钮之前,以便让它成为这些按钮的基础。

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:orientation="vertical"
    android:padding="16dp">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:alpha="0.7"
        android:scaleType="fitXY"
        android:src="@drawable/pic" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="LOGIN" />

        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:alpha="1"
            android:text="SIGNUP" />
    </LinearLayout>

</FrameLayout>