【问题标题】:How to set background opacity of a textview placed on to of ImageView如何设置放置在 ImageView 上的 textview 的背景不透明度
【发布时间】:2014-01-19 19:29:37
【问题描述】:

我想在名称上有透明背景的情况下实现以下结果。:

到目前为止,这就是我所做的(忽略图像周围的黑色边框):

我想要一个透明背景(实际上是调整了不透明度的彩色背景)。

这是我一直在使用的 XML 代码:

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="5dp">

<ImageView
    android:id="@+id/iconItem"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_gravity="center"
    android:src="@drawable/shout_ic"/>
<TextView
    android:id="@+id/textItem"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:layout_alignBottom="@+id/iconItem"
    android:paddingBottom="5dip"
    android:textSize="10sp"
    android:textColor="#FFF"/>
</RelativeLayout>

谁能指出我如何实现这些目标的正确方向?谢谢

【问题讨论】:

    标签: android background android-imageview textview opacity


    【解决方案1】:

    在您的 TextView 定义中,添加:

    android:background="#8888"
    

    888 是中间灰色 (888888),8 是中间 alpha (88)

    android:background="#8000"
    

    000 是黑色 (000000),8 是中间 alpha (88)

    【讨论】:

      【解决方案2】:

      您可以通过xml设置背景颜色,如其他答案所示。

      您还可以动态获取Backgtound 并设置alpha。

      textItem.getBackground().setAlpha(100); // int value between 0 and 255
      

      【讨论】:

        【解决方案3】:

        像这样将背景属性添加到您的文本视图中:

        <TextView
        android:id="@+id/textItem"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_alignBottom="@+id/iconItem"
        android:paddingBottom="5dip"
        android:textSize="10sp"
        android:textColor="#FFF"
        android:background="#70000000"/>
        

        【讨论】:

          【解决方案4】:

          android:background 添加到textView

          <TextView
            android:id="@+id/textItem"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:layout_alignBottom="@+id/iconItem"
            android:background="#80000000"
            android:paddingBottom="5dip"
            android:textSize="10sp"
            android:textColor="#FFF"/>
          

          并且您可以根据百分比更改透明度

          查看understanding the Color codes in android

          【讨论】:

            【解决方案5】:
            <FrameLayout
             xmlns:android="http://schemas.android.com/apk/res/android"
             xmlns:tools="http://schemas.android.com/tools"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:orientation="vertical"
             android:padding="5dp">
            
            <ImageView
            android:id="@+id/iconItem"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:src="@drawable/shout_ic"/>
             <TextView
            android:id="@+id/textItem"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_alignBottom="@+id/iconItem"
            android:paddingBottom="5dip"
            android:textSize="10sp"
            android:textColor="#FFF"/>
            </FrameLayout>
            

            【讨论】:

              【解决方案6】:

              尝试添加

              android:alpha="0.5"
              

              对于TextView,它应该使其半透明

              【讨论】:

                最近更新 更多