Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android可在文本视图中的单词下绘制_Android - Fatal编程技术网

Android可在文本视图中的单词下绘制

Android可在文本视图中的单词下绘制,android,Android,我有一个要求,在多行文本视图的某个单词下放置一个drawable。你怎么能做到这一点?一种方法是使用multiple TextView并在需要可绘制文本的EditText下方放置一个可绘制底部。这是一种更简单的方法吗 亲切的问候也许, 你需要什么?或任何可展的组合。可能, 你需要什么?或任何可折叠的组合。这可能满足您的需要 android:drawableBottom=“@drawable/{yourdrawable} 这可能满足您的需要 android:drawableBottom=“@dra

我有一个要求,在多行文本视图的某个单词下放置一个drawable。你怎么能做到这一点?一种方法是使用multiple TextView并在需要可绘制文本的EditText下方放置一个可绘制底部。这是一种更简单的方法吗

亲切的问候

也许, 你需要什么?或任何可展的组合。

可能,
你需要什么?或任何可折叠的组合。

这可能满足您的需要

android:drawableBottom=“@drawable/{yourdrawable}


这可能满足您的需要

android:drawableBottom=“@drawable/{yourdrawable}


如果可以在文本之间放置drawable,则必须使用Spanable。请参见文本之间的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;
    }
Textview Textview=(Textview)findViewById(R.id.Textview);
textview.setText(getSmiledText(text.toString());
公共可扩展getSmiledText(字符串文本){
SpannableStringBuilder=新的SpannableStringBuilder(文本);
如果(emoticons.size()>0){
整数指数;
对于(索引=0;索引builder.length())
继续;
if(builder.subSequence(index,index+length).toString().equals(entry.getKey())){
setSpan(新图像SPAN(getContext(),entry.getValue()),索引,索引+长度,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
指数+=长度-1;
打破
}
}
}
}
}
返回生成器;
}

可以在文本之间放置drawable,您必须使用Spanable。请参见文本之间的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;
    }
Textview Textview=(Textview)findViewById(R.id.Textview);
textview.setText(getSmiledText(text.toString());
公共可扩展getSmiledText(字符串文本){
SpannableStringBuilder=新的SpannableStringBuilder(文本);
如果(emoticons.size()>0){
整数指数;
对于(索引=0;索引builder.length())
继续;
if(builder.subSequence(index,index+length).toString().equals(entry.getKey())){
setSpan(新图像SPAN(getContext(),entry.getValue()),索引,索引+长度,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
指数+=长度-1;
打破
}
}
}
}
}
返回生成器;
}

我只是建议您在
文本视图
中设置
html格式文本
,这样您就可以应用内联样式为所需文本内容应用背景图像。

我只是建议您在
文本视图
中设置
html格式文本
应用内联样式为所需文本应用背景图像。

我的要求是在单词下面加一个可画的下划线?一幅图片可以吗?阅读子类并选择你喜欢的。我的要求是在一个单词下面画一个可画的下划线?一个图像跨度可以吗?阅读子类并选择你喜欢的。