Android Drawable在TextView中的一个单词下

时间:2014-10-15 12:22:53

标签: android

我需要在多行TextView的某个单词下面放置一个drawable。怎么办呢?一种方法可能是使用多个TextView并在EditText下面放置一个需要drawable的可绘制底部。这是一种更简单的方法吗?

亲切的问候

4 个答案:

答案 0 :(得分:1)

可能http://developer.android.com/reference/android/text/style/BackgroundColorSpan.html 你需要什么?或者任何spannables的组合。

答案 1 :(得分:1)

这可能符合您的需要。

android:drawableBottom="@drawable/{yourdrawable}

http://developer.android.com/reference/android/widget/TextView.html#attr_android:drawableBottom

答案 2 :(得分:1)

可以在文本之间放置drawable,你必须使用spannable。参见文本之间的emoti图标示例。

Textview textview = (Textview)findViewById(R.id.textview);
textview.setText(getSmiledText(text.toString()));

public Spannable getSmiledText(String text) {
        SpannableStringBuilder builder = new SpannableStringBuilder(text);
        if (emoticons.size() > 0) {
            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(getContext(), entry.getValue()), index, index + length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
                            index += length - 1;
                            break;
                        }
                    }
                }
            }
        }
        return builder;
    }

答案 3 :(得分:1)

我建议您在html formatted text内设置TextView,以便您可以应用内联样式来应用background image for desired text内容。