创建透明背景但保持文本和图标不透明

时间:2015-11-13 10:23:15

标签: android android-layout

AndroidStudio 1.5

您好,

我正在尝试创建图标和文字所在的透明背景。但我不希望图标或文字透明。在dialer_pad.xml中,我尝试设置alpha,但每次执行此操作时,图标和文本也会变得透明。

如您所见,图标和文字是透明的。我只想让背景透明。

enter image description here

我尝试过很多东西来设置alpha,让周围的背景变得透明,同时只留下文字和图标。我认为制作一个图层列表可能会有用。

这可能吗?

非常感谢任何建议,

contacts.xml

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingBottom="8dp"
    android:background="@drawable/inner_border">

    <ImageView
        android:id="@+id/ivContacts"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:padding="16dp"
        android:src="@drawable/ic_people_white_48dp"
        android:layout_gravity="center"/>

    <TextView
        android:id="@+id/tvHold"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Contacts"
        android:textSize="12sp"
        android:textColor="@android:color/white"
        android:fontFamily="sans-serif-condensed"
        android:layout_gravity="bottom|center"/>
</FrameLayout>

call.xml

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingBottom="8dp"
    android:background="@drawable/right_border">

    <ImageView
        android:id="@+id/ivSwitch"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_gravity="center"
        android:padding="16dp"
        android:src="@drawable/ic_phone_white_48dp" />

    <TextView
        android:id="@+id/tvHold"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Make Call"
        android:textSize="12sp"
        android:fontFamily="sans-serif-condensed"
        android:textColor="@android:color/white"
        android:layout_gravity="bottom|center"/>
</FrameLayout>

dialer_pad.xml

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/outer_border"
    android:alpha="0.5">

    <TableRow>
        <include
            layout="@layout/call"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"/>

        <include
            layout="@layout/contacts"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"/>
    </TableRow>
</TableLayout>

activity_main.xml中

<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="match_parent"
    tools:context="com.ssd.MainActivity"
    android:gravity="center_vertical|center_horizontal"
    android:background="@drawable/background">

    <include layout="@layout/dialer_pad"/>
</RelativeLayout>

2 个答案:

答案 0 :(得分:1)

您可以在outer_border.xml color中添加transparency代替:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/outer_border" >

...
</TableLayout>

如果您需要transparent blue,可以使用#550000FF

答案 1 :(得分:0)

in&#34; dialer_pad.xml&#34;通过这种方式,alpha对他们所有的孩子都有效,包括。 因此,您需要在dialer_pad.xml的TableLayout中删除alpha。

并编辑您的子布局。

contacts.xml

 <FrameLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingBottom="8dp"
       >
       <ImageView
            android:id="@+id/ivContacts"
            android:layout_height="match_parrent"
            android:layout_width="match_parrent"
            android:alpha="0.5"
            android:background="@drawable/inner_border"/>

        <ImageView
            android:id="@+id/ivContacts"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:padding="16dp"
            android:src="@drawable/ic_people_white_48dp"
            android:layout_gravity="center"/>

        <TextView
            android:id="@+id/tvHold"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Contacts"
            android:textSize="12sp"
            android:textColor="@android:color/white"
            android:fontFamily="sans-serif-condensed"
            android:layout_gravity="bottom|center"/>
    </FrameLayout>

与call.xml相同