Найти в Дзене
Making games is easy!

Программирование под Android. Как сделать, чтобы текст был виден на любой неоднородной поверхности.

Иногда нужно, чтобы текст был виден на любой неоднородной или движущейся поверхности (фоне). Например, вам нужно наложить субтитры поверх видео. Т.е. варианты когда, неоднородный фон может двигаться или осуществляться анимация. Или наоборот вы двигаете текст по фону. Для этого можно просто наложить на текст “тени”. Т.е. в ваш макет надо добавить следующее android:shadowColor="#00FF00"
android:shadowDx="1"
android:shadowDy="1"
android:shadowRadius="2" Здесь задается цвет тени, смещение по X и Y и радиус. shadowRadius - определяет, насколько тень должна быть размыта по краям. На примере кнопки: <Button
    android:id="@+id/button_1"
    android:onClick="onSendMessage_button_1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content”
    android:text="@string/button_text"
    android:background="@drawable/button_background"
    android:textColor="#000000"     android:textAllCaps="false" 
    android:textStyle="bold"
    android:shadowColor="#FF000

Иногда нужно, чтобы текст был виден на любой неоднородной или движущейся поверхности (фоне).

Например, вам нужно наложить субтитры поверх видео.

Т.е. варианты когда, неоднородный фон может двигаться или осуществляться анимация.

Или наоборот вы двигаете текст по фону.

Для этого можно просто наложить на текст “тени”.

Т.е. в ваш макет надо добавить следующее

android:shadowColor="#00FF00" android:shadowDx="1" android:shadowDy="1" android:shadowRadius="2"

Здесь задается цвет тени, смещение по X и Y и радиус.

shadowRadius - определяет, насколько тень должна быть размыта по краям.

На примере кнопки:

<Button

    android:id="@+id/button_1"


    android:onClick="onSendMessage_button_1"


    android:layout_width="wrap_content"


    android:layout_height="wrap_content”


    android:text="@string/button_text"


    android:background="@drawable/button_background"


    android:textColor="
#000000"

    android:textAllCaps="false" 

    android:textStyle="bold"


    android:shadowColor="
#FF0000"     android:shadowDx="1"     android:shadowDy="1"     android:shadowRadius="2"     android:textSize="14sp" />

Как делать тени в макете мы разобрались.

Теперь смотрим, если мы хотим это сделать в коде.

Смотрим, как это сделать на Java:

view_1.setTextColor(ContextCompat.getColor(this, R.color.wihte));

view_1.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);

view_1.setTypeface(null, Typeface.BOLD); // Жирный

// Ниже параметры тени

// Параметры: Радиус, Смещение X, Смещение Y, и Цвет

view_1.setShadowLayer(2, 1, 1, Color.BLACK);

Подписывайтесь на канал, не пропустите новые публикации.