SpannableStringÀ¸·Î ÅؽºÆ® ºä¿¡ ¾ÆÀÌÄÜ ³Ö´Â ¹ý |
|
|
 |
8³â Àü |
¾Èµå·ÎÀ̵åÀÇ ÅؽºÆ®ºä(TextView)¿¡ À̸ðƼÄÜÀ» °°ÀÌ Ç¥½ÃÇÏ´Â ¹ýÀ̶ö±î..
¾Æ·¡ Äڵ带 ±Ü¾î¾²¸é µÇ°Ú´Ù.
//emoticons´Â ÅؽºÆ®¿¡¼ ¾ÆÀÌÄÜÀ¸·Î ġȯÇÒ ±ÛÀÚµéÀ» ¸ð¾Æ³õÀº °Í
HashMap<String, Integer> emoticons = new HashMap<String, Integer>();
emoticons.put("(open)", R.drawable.ic_x_open);
emoticons.put("(ready)", R.drawable.ic_x_work);
emoticons.put("(fail)", R.drawable.ic_x_fail);
emoticons.put("(wifi)", R.drawable.ic_x_wifi);
emoticons.put("(boost)", R.drawable.ic_x_cell);
//»ç¿ëÇÒ amsx_desc ½ºÆ®¸µ ¸®¼Ò½º¿¡ À̸ðƼÄÜ Ä¡È¯ÀÚµéÀÌ Æ÷ÇԵǾî ÀÖ´Ù.
SpannableStringBuilder builder = new SpannableStringBuilder(context.getString(R.string.amsx_desc));
int index;
for (index = 0; index < builder.length(); index++) {
if (Character.toString(builder.charAt(index)).equals("(")) {
for (Map.Entry<String, Integer> entry : emoticons.entrySet()) {
int length = entry.getKey().length();
if (index + length > builder.length())
continue;
if (builder.subSequence(index, index + length).toString().equals(entry.getKey())) {
builder.setSpan(new ImageSpan(context, entry.getValue()), index, index + length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
index += length - 1;
break;
}
}
}
}
textView.setText(builder);
´Ù¸¥ Âü°íÀÚ·á http://www.programcreek.com/java-api-examples/index.php?api=android.text.style.ImageSpan |
|
̵̧ : 347 |
̵̧
¸ñ·Ï
|
|