アイコン付きのボタンを実装する機会が度々ある。drawableLeft で文字とは別でアイコンを設置するのではなくアイコンと文字を合わせて真ん中寄せにしたいことが多い。 ViewGroupで囲えば実現できるがもうちょっとスマートにできる方法がないか毎回思うので試したメモを残しておく。 ImageSpanを使うとStringの中に画像を扱える。 画像とテキストのtext alignをvertical centerになるように表示したかったため(ImageSpanを使うとbaselineで表示される)、ImageSpanを継承したCenteredImageSpanを作成して対応した。 ImageSpanで表示するとbaselineに合わせて画像とテキストが並ぶ。 ref: Androidアプリでボタン内に画像とテキストを中央寄せで表示する - Qiita import android.grap