【问题标题】:Less Opacity in view will make less opacity for all elements in android视图中的不透明度降低将使android中所有元素的不透明度降低
【发布时间】:2018-01-31 13:56:00
【问题描述】:

我有一个使用颜色的布局,并将其不透明度设置为 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

【问题讨论】:

  • 使用带有字母代码的背景颜色

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


【解决方案1】:

您为父View 设置alpha 标签,即RelativeLayout。您应该为要为其添加透明度的View 准确设置alpha。或者如果你只想为background添加透明度,你应该使用透明色作为View的背景。

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

【讨论】:

    【解决方案2】:

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

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

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

    例如 #90FFFFFF 这里前两位设置不透明度为颜色。

    有关更多信息,您可以查看此链接以设置不透明度:

    Opacity color to Hash code

    【讨论】:

      【解决方案3】:

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

      所以删除

      android:alpha="0.2"
      

      只改变不透明度

      android:background="@drawable/background_rounded_black"
      

      最简单的方法是在drawable 文件夹中创建新的background_rounded_black_opacity.xml(只需复制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>
      

      【讨论】:

      • 如何更改可绘制文件@DEADMC中背景的不透明度
      猜你喜欢
      • 2014-05-31
      • 2023-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-06
      • 2014-08-31
      • 1970-01-01
      相关资源
      最近更新 更多