Android - тень на тексте?

Я задаюсь вопросом, как добавить тень на тексте в андроиде?

У меня есть следующий код, который применяется на битовый массив, и я хотел быть затененным...

paint.setColor(Color.BLACK);
paint.setTextSize(55);
paint.setFakeBoldText(false);
paint.setShadowLayer(1, 0, 0, Color.BLACK); //This only shadows my whole view...
176
задан Suragch 24 September 2018 в 05:14
поделиться

2 ответа

Вы должны быть в состоянии добавить стиль, как это (взято из исходного кода для Ringdroid):

  <style name="AudioFileInfoOverlayText">
    <item name="android:paddingLeft">4px</item>
    <item name="android:paddingBottom">4px</item>
    <item name="android:textColor">#ffffffff</item>
    <item name="android:textSize">12sp</item>
    <item name="android:shadowColor">#000000</item>
    <item name="android:shadowDx">1</item>
    <item name="android:shadowDy">1</item>
    <item name="android:shadowRadius">1</item>
  </style>

И в вашем макете, используйте стиль, как это:

 <TextView android:id="@+id/info"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       style="@style/AudioFileInfoOverlayText"
       android:gravity="center" />

Редактировать: исходный код можно посмотреть здесь: https://github.com/google/ringdroid

Edit2: Чтобы установить этот стиль программно, вы сделаете что-то вроде этого (изменено из этого примера, чтобы соответствовать ресурсам ringdroid сверху)

TextView infoTextView = (TextView) findViewById(R.id.info);
infoTextView.setTextAppearance(getApplicationContext(),  
       R.style.AudioFileInfoOverlayText);

Подпись для setTextAppearance следующая

public void setTextAppearance (Context context, int resid)

Since: API Level 1
Устанавливает цвет текста, размер, стиль, цвет подсказки и цвет выделения из указанного ресурса TextAppearance.

381
ответ дан 23 November 2019 в 20:22
поделиться

Нарисуйте 2 текста: один серый (это будет тень) и поверх него нарисуйте второй текст (координата y на 1 пиксель больше, чем текст тени).

2
ответ дан 23 November 2019 в 20:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: