Android中的文字阴影效果?

时间:2010-07-21 08:26:58

标签: android textview shadow

  

可能重复:
  Android - shadow on text?

如何在TextView中制作阴影效果文字。

任何想法?

4 个答案:

答案 0 :(得分:352)

将这些放在values / colors.xml

<resources>
    <color name="light_font">#FBFBFB</color>
    <color name="grey_font">#ff9e9e9e</color>
    <color name="text_shadow">#7F000000</color>
    <color name="text_shadow_white">#FFFFFF</color>
</resources>

然后在你的布局xml中有一些示例TextView的

在带暗影的光线上浮动文字的示例

<TextView android:id="@+id/txt_example1"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:textSize="14sp"
                  android:textStyle="bold"
                  android:textColor="@color/light_font"
                  android:shadowColor="@color/text_shadow"
                  android:shadowDx="1"
                  android:shadowDy="1"
                  android:shadowRadius="2" />

enter image description here

有暗影的光线上的蚀刻文字示例

<TextView android:id="@+id/txt_example2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="14sp"
                android:textStyle="bold"
                android:textColor="@color/light_font"
                android:shadowColor="@color/text_shadow"
                android:shadowDx="-1"
                android:shadowDy="-1"
                android:shadowRadius="1" />

enter image description here

有暗影的光线上的清晰文字示例

<TextView android:id="@+id/txt_example3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="14sp"
                android:textStyle="bold"
                android:textColor="@color/grey_font"
                android:shadowColor="@color/text_shadow_white"
                android:shadowDx="-2"
                android:shadowDy="-2"
                android:shadowRadius="1" />

enter image description here

注意正面值和负面值...我建议您自己使用颜色/值,但最终您可以调整这些设置以获得您想要的效果。

答案 1 :(得分:190)

也许您会考虑使用android:shadowColorandroid:shadowDxandroid:shadowDyandroid:shadowRadius;或setShadowLayer()

答案 2 :(得分:61)

TextView textv = (TextView) findViewById(R.id.textview1);
textv.setShadowLayer(1, 0, 0, Color.BLACK);

答案 3 :(得分:0)

完整答案

将这两行添加到父视图,否则当视图边界小于阴影偏移时文本阴影将被剪裁

<块引用>

android:clipChildren="false"

android:clipToPadding="false"

示例:

<androidx.constraintlayout.widget.ConstraintLayout
            android:clipChildren="false"
            android:clipToPadding="false"
           ... >

        <TextView
         style="@style/TextShadowStyle"
          ....
            />

文字阴影样式:

 <style name="TextShadowStyle">
        <item name="android:shadowColor">@color/black</item>
        <item name="android:shadowDx">10</item>
        <item name="android:shadowDy">10</item>
        <item name="android:shadowRadius">5</item>
    </style>