214

重複の可能性:
Android-テキストに影がありますか?

でシャドウエフェクトテキストを作成するにはどうすればよいですかTextView

何か案が?

4

4 に答える 4

443

これらを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" />

ここに画像の説明を入力してください

暗い影のある光のエッチングされたテキストの例

<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" />

ここに画像の説明を入力してください

暗い影のある光の鮮明なテキストの例

<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" />

ここに画像の説明を入力してください

正の値と負の値に注意してください...色/値を自分で試してみることをお勧めしますが、最終的にはこれらの設定を調整して、探している効果を得ることができます。

于 2012-04-29T15:15:12.040 に答える
211

おそらく、android:shadowColor 、、、;の使用を検討するでしょう。あるいは、setShadowLayer()android:shadowDxandroid:shadowDyandroid:shadowRadius

于 2010-07-21T08:47:08.560 に答える
66
TextView textv = (TextView) findViewById(R.id.textview1);
textv.setShadowLayer(1, 0, 0, Color.BLACK);
于 2012-02-26T16:22:02.867 に答える
1

完全な答え

これらの2行を親ビューに追加します。そうしないと、ビューの境界がシャドウオフセットよりも小さい場合にテキストシャドウがクリップされます。

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>
于 2021-03-12T16:08:38.720 に答える