Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как получить полупрозрачное изображение поверх другого изображения для хранения текста в android (предоставлен снимок экрана)

Автор вопроса: Akshat AgarwalОтветов: 5

У меня есть изображение, использующее представление изображения, в нижней части изображения мне нужно полупрозрачное представление (черного цвета), в котором будет отображаться текст. Что-то вроде этого

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

 <TextView
 android:background="@color/lightGrey"
 android:text="Swiss Chalet - Play for a chance to win free app!"/>

однако это дает только серый фон для текста. Кто-нибудь знает, как я могу этого добиться?

  • Вы можете использовать Frame Layout. Он идеально подходит для такого рода работ. newBie 23.10.2013

androidandroid-layoutxmltransparency

Ответы

Ответ 1 · рейтинг 6 · Manishika

Попробуйте что-нибудь подобное на своем фоне

android:background="#80000000"

Дополнительную информацию о настройке прозрачности можно найти здесь

Ответ 2 · рейтинг 6 · Andrew Schuster

В вашем xml используйте

android:alpha=".4"

Это установит альфа-значение представления. Альфа - это прозрачность. Вы можете настроить увеличение или уменьшение прозрачности.


Не зная, как вы реализовали свой макет, это снимок в темноте, но он может быть полезным.

<TextView
    android:id="@+id/your_id_name"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="Your text"
    android:background:"@color/your_color"/>

Ответ 3 · рейтинг 2 · physphil

В файле colors.xml (или там, где вы определяете цвет "lightGrey") вы можете указать альфа-канал, добавив две цифры перед шестнадцатеричным кодом цвета (в формате AARRGGBB).

Так, например, если ваш светло-серый цвет # 555555, укажите его как

<color name="lightGrey">#CC55555</color>

вместо этого цвет будет прозрачным на 20% и непрозрачным на 80%. 00 представляет полную непрозрачность (0% прозрачности), а FF соответствует 100% прозрачности (невидимой). Надеюсь это поможет!

Ответ 4 · Sivakumar S

Вы могли бы сделать это так,

<FrameLayout
  android:layout_width="match_parent"
  android:layout_height="match_parent">
    <FrameLayout
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:alpha="0.4"
       android:background="@android:color/black"/>

   <TextView
    android:background="@color/lightGrey"
    android:text="Swiss Chalet - Play for a chance to win free app!"/>
</FrameLayout>

Ответ 5 · рейтинг -1 · Haresh Chhelana

Попробуй это:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/icmsLrnArtListItem"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/white"
    android:layout_margin="3dp"
    android:padding="5dp" >

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="5dp" >

        <ImageView
            android:id="@+id/icmsImageThumb"
            android:layout_width="match_parent"
            android:layout_height="180dp"
            android:src="@drawable/ic_launcher"
            android:scaleType="fitXY" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="top"
            android:background="@android:color/darker_gray"
            android:textColor="@android:color/black"
            android:text="Image Top text"
            android:gravity="center"
            android:textStyle="bold" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:background="@android:color/darker_gray"
            android:ellipsize="end"
            android:maxLines="2"
            android:text="Image Bottom text"
            android:textColor="@android:color/black"
            android:shadowColor="#FFFFFF"
            android:gravity="center"
            android:shadowDx="2"
            android:textStyle="bold"
            android:shadowDy="2"
            android:shadowRadius="2" />
    </FrameLayout>

</LinearLayout>

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы