重複の可能性:
Android-テキストに影がありますか?
でシャドウエフェクトテキストを作成するにはどうすればよいですかTextView
。
何か案が?
これらを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" />
正の値と負の値に注意してください...色/値を自分で試してみることをお勧めしますが、最終的にはこれらの設定を調整して、探している効果を得ることができます。
おそらく、android:shadowColor 、、、;の使用を検討するでしょう。あるいは、setShadowLayer()?android:shadowDx
android:shadowDy
android:shadowRadius
TextView textv = (TextView) findViewById(R.id.textview1);
textv.setShadowLayer(1, 0, 0, Color.BLACK);
完全な答え
これらの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>