読者です 読者をやめる 読者になる 読者になる

@neiraza

2匹の怪獣が寝た後にプログラマーしてる、最近はサイバーエージェントでゼミ長もしてる僕のネタ帳

EditTextのhintに画像を使いやがれ

AndroidのEditTextでhintってのがあると思うんだけど、
こいつで画像を使うネタを今日は仕込みたいと思います。

hintで画像(画像はandroid.R.drawable.start_big_on)

f:id:redogu:20120904095524p:plain

入力されると、hintが消えるので当然、画像も消える

f:id:redogu:20120904095528p:plain

ポイントは2つ。

  • EditTextでandroid:bufferTypeをeditableにしやがれ
<EditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:bufferType="editable"/>

これでSpannableStringBuilderが使えるです

  • SpannableStringBuilderでImageSpanをsetSpanしやがれ
EditText editText = (EditText) findViewById(R.id.edit_text);
SpannableStringBuilder ssb = (SpannableStringBuilder) editText.getText();
ssb.append("カメラほしー");
ImageSpan imageSpan = new ImageSpan(this, android.R.drawable.star_big_on);
ssb.setSpan(imageSpan, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
editText.setHint(ssb);
editText.setText("");

ここで良く分かってないのが、3行目でappendした内容を
全文表示したいんだけど、うまくいかない。空文字つっこむとか無しで。
今のままだと、メラか米良がほしーみたいな話しに。
(ここがうまく行かないからblogネタにしたんだけど)
もう一点、最後の行でsetText("")しないと、hintの前にtextが入っちゃって・・・。


そのうち、きっとどうにかなる。