视图中较少的不透明度将使android中的所有元素的不透明度降低

时间:2017-08-23 06:10:29

标签: android android-linearlayout textview opacity android-relativelayout

我有一个布局,我正在使用一种颜色,我的不透明度为0.2。我在该布局中有一个textview,但是当我指定布局的不透明度较低时,Textview文本也会消失。为什么会这样?我只想淡化背景色而不是textview的文字。

//布局代码

 <?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:layout_width="match_parent"
android:layout_height="wrap_content"
android:alpha="0.2"
android:background="@drawable/background_rounded_black"
android:padding="@dimen/dp10">


<TextView
    android:id="@+id/txtNews"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:alpha="1"
    android:text="djfhwhfirhfiohrhvfuhvfjvbv  vknfjvnfjv fv vefjkhvfhvv hvufevhfuievefv ivfhiefhvfe ifvjioefv"
    android:textColor="@android:color/white"
    android:textSize="@dimen/dp15" />

<TextView
    android:id="@+id/txtTime"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@id/txtNews"
    android:layout_marginTop="@dimen/dp10"
    android:alpha="1"
    android:drawableLeft="@drawable/clock_news"
    android:text="12 hrs ago"
    android:textColor="@android:color/white"
    android:textSize="@dimen/dp15" />

现在看起来如何http://prntscr.com/gbxi87

3 个答案:

答案 0 :(得分:0)

您为alpha的父View设置了RelativeLayout标记。您应该为要为其添加透明度的alpha完全设置View。或者,如果您只想为background添加透明度,则应使用透明色作为View的背景。

你还说你的布局中有一个TextView,就像我看到的那样是两个!

答案 1 :(得分:0)

您必须更改背景上的alpha,而不是整个元素

删除

android:alpha="0.2"

改变

的不透明度
android:background="@drawable/background_rounded_black"

最简单的方法是在background_rounded_black_opacity.xml文件夹中创建新的drawable(只需复制drawable / background_rounded_black),然后将背景颜色更改为您需要的颜色。

所以如果background_rounded_black看起来像

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#000000"/>
    <stroke android:width="3dip" android:color="#B1BCBE" />
    <corners android:radius="10dip"/>
</shape>

您可以添加0.2不透明度,例如在所有颜色上添加33,因此在您的情况下它将是

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#33000000"/>
    <stroke android:width="3dip" android:color="#33B1BCBE" />
    <corners android:radius="10dip"/>
</shape>

答案 2 :(得分:0)

我建议你将alpha颜色设置为textview的背景,它会正常工作。

您为该窗口小部件设置了不透明度,因此它设置为整个textview窗口小部件的不透明度,而您只需将不透明度设置为textView的背景色。

您可以使用8位哈希码定义颜色。

例如#90FFFFFF这里首先将两位数设置为不透明度。

了解更多信息,您可以看到此链接设置不透明度:

Opacity color to Hash code