ICU4JをAndroidで使う時

Unicodeの文字変換を行えるICU4jというライブラリをAndroidで使う時に遭遇したことや対応したことなどのちょっとしたメモです。

一言でいえばここを見れば済む話である。

Unicode and internationalization support  |  Android Developers

最新versionの63.1を使用するとAPI level23以下のデバイスでは次のようなエラーでアプリが落ちる。 (自分の場合は半角文字を全角文字に変換するという処理の時で使っていて遭遇)

続きを読む

getComponentsDrawable()がnullになるとき

メモです。

TextView等でdrawableStart/drawableEndを使ってicon等のリソースを設定している場合などで

getComponentsDrawable()

を使うと大概の場合は特に問題なく動くが、稀にnullが帰ってくる場合がある。(drawableRight/Leftを使っている場合は問題ない)

続きを読む

RxJavaのsubscribeOnとobserveOnの違いを理解したい

今更ながらRxJavaのsubscribeOnとobserveOnの違い、使い分けがわからなかったので理解するときに参照した記事と動かして試したこととのメモです。

こちらの記事を参考にしました。

http://reactivex.io/documentation/operators/subscribeon.html https://gfx.hatenablog.com/entry/2015/12/12/231203 https://stackoverflow.com/questions/46070235/switching-threads-multiple-times-in-rx-chain

observeOnはそれ以降の処理をどのスレッドで行うかを指定するので長い処理の中で何回も指定されることがある。一方subscribeOnは文字通りsubscribeされたときのスレッドを指定するものなので何回も指定するものではない。syntax上は何回でも指定できるが、実際は最初に指定されたスレッドで処理が行われる。

続きを読む

API23以下でも<item>で幅/高さを設定したい

layer-listでdrawableファイルを書く時等で、読み込むiconの表示幅/高さなどを変えたい時のメモ。 具体的には左を右のようにしたい時。

f:id:chiiia12:20181030184221j:plainf:id:chiiia12:20181030184218j:plain

API23以降だとitem要素にwidthとheightが設定できる

続きを読む

GsonでJsonSerializer/JsonDeserializerを使う

Gsonを使ってJavaのObjectとJsonの間をコンバートする際、カスタマイズしたい時があったのでどんなユースケースだったのかとどう書いたかのメモ。 もっと良いやり方がありそうな気がするが作業ログということで。使用しているGson ver: 2.8.1。

Deserialize

JsonからJavaのObjectにマッピングする時。自分は以下のようなユースケースでDeserializerを書いた。 同じ名前のkeyだが中身の型は違う、がObjectとしては同じObjectにコンバートしたい時。

続きを読む

ConstraintLayoutの中のTextViewが欠ける

ConstraintLayoutの中に複数行のTextViewを置いた時、ConstraintLayoutのレイアウトに合わせて折返しされず行末が表示されない問題。 以下の記事と同じ現象で参考にさせてもらいました。

https://stackoverflow.com/questions/46350501/android-constraintlayout-textview-go-off-the-screen https://qiita.com/henteko/items/f5cf5d550aca9a182ab8

解決策はapp:layout_constraintEnd_toEndOf="parent"を親のConstraintLayoutにつけることと、layout_width0dpにするとうまく表示された。

続きを読む