Little Strange Software

スマホアプリの開発を行う LittleStrangeSoftware のブログです。

まさか、TextViewにこんな機能が…!(shadowについて)

 どうも!LSSです!

 

 台風が去ってからか、突然に寒くなりました。

 夕方、ちょっとだけ出かけてきたんですが、半袖シャツで出かけてしまい、完全に服の選択ミスったなぁ…と思った一日でした^^;

 

 さて、今日の記事はごくごく小ネタですが、何気なくネットで見かけて

「おおっ!!」

となったAndoroidのxmlの機能について書いてみたいと思います。

 

 

 

百聞は一見にしかず

f:id:little_strange:20191017002042p:plain

↑適当にサンプルで作った画面です。

 まんなかの「Little Strange Software」とそのバックの立方体は、試しに作ってみたロゴですが、画面下部の「Tap to Next」の文字が今回の本題です。

 

 実はこの文字色、背景の色とまったく同じ色を使用しています。

 それでも文字がちゃんと読めるのはがついているからですが、この影をつけるの、TextViewを重ねるとか、SHAPEを使って云々…ではなく、

 

<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="36sp"
android:gravity="center_horizontal"
android:shadowColor="#000000"
android:shadowDx="3"
android:shadowDy="3"
android:shadowRadius
="3"
android:text="@string/taptonext"
android:textColor="#B1E774"
android:textSize="36sp"
android:textStyle="bold" />

↑の赤文字で示した4行、をTextViewに加えるだけ!で出来ちゃうんですね!!

 なお、これらの項目はちゃんとデザイン編集画面のAttributesにもあります!

 

設定内容

android:shadowColor="#000000"←影の色を指定
android:shadowDx="3"←影を文字からどんだけ右にずらすか
android:shadowDy="3"←影を文字からどんだけ下にずらすか
android:shadowRadius="3"←影のぼやけ具合を指定

 

だけで表現できてしまう、というとってもシンプルな記載です。
(dpとかspとかの単位指定がないのは何故?とちょっと疑問が湧いてはいますがw)

 

 よく、Attributes見てると「これはどういう場合に使うんだろう?」がよく分からない項目がたっくさんありますが、そんな中にもこんな素敵な機能が埋もれて(?)いたんですねぇ…。

 

  なお、このshadow、TextViewだけでなく、例えばButtonの文字とかにも設定できるそうです。

 

 ごくごくお手軽、そして効果が大きく、
「文字色と背景色が同じになってしまう可能性がある場合」
でも視認性を確保できるという実用性も兼ね備えた、面白い設定項目だと思います!

 

 

 うーん。

 kotlinもですが、xmlもまだまだ奥が深そうですね。

 このshadowも、kotlinから動的に設定できればまた何か面白そうな事ができるかも!