2015-11-13 2 views
0
AndroidStudio 1.5 

Здравствуйте,Создание прозрачного фона, но сохраняя текст и значок непрозрачной

Я пытаюсь создать прозрачный фон, иконка и текст на. Но я не хочу, чтобы значки или текст были прозрачными. В dialer_pad.xml я попытался установить альфа, но каждый раз, когда я это делаю, значки и текст также становятся прозрачными.

Как вы можете видеть, значки и текст являются прозрачными. Я просто хочу, чтобы фон был прозрачным.

enter image description here

Я пробовал много вещей, чтобы установить альфа, чтобы просто получить окружающий фон, чтобы быть прозрачным, оставляя текст и только иконки. Я думал, что создание списка слоев может работать.

Возможно ли это?

Большое спасибо на любые предложения,

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> 
+0

getBackground(). SetAlpha() не помогает вам? – Nanoc

+0

Контейнер FrameLayout с альфой 0-1 Текст, значки внутри – pvllnspk

+0

@pvllnspk. Наличие альфа-набора в FrameLayout добавит прозрачность для детей, чтобы изображение и текст были прозрачными. Мне просто нужен фон, чтобы текст и значки были прозрачными. Оставляя значки и текст без прозрачности. – ant2009

ответ

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

+0

@Iuiscosta, что на самом деле работает достаточно хорошо. Это лучший ответ. – ant2009

0

в "dialer_pad.xml" с этим путь, альфа эффективен со всеми детьми, включая. Итак, вам нужно удалить альфу в TableLayout из dialer_pad.xml.

и отредактируйте свой макет ребенка таким образом.

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

+0

@ ZaiNguyen, я попробовал вас, но если у меня что-то не так. Ничего не было прозрачно. Мне просто нужен фон, чтобы текст и значки были прозрачными.Отсутствие прозрачности для значков или текста. Надеюсь, я поняла. Благодарю. – ant2009

Смежные вопросы