我必须完全按照 TextView 的方式显示文本和图像。可以使用 spannable 对象,但问题是图像是在运行时从服务器下载的,并且必须显示占位符直到图像被下载..
所以我正在考虑创建扩展 ViewGroup 的 Custom TextView,但这样会有很多处理。让我知道是否还有其他最佳选择,因为我时间不够
最佳答案
这可以通过使用 SpannableString
和 ImageSpan
类来实现。可以创建 SpannableString
实例并将其设置为 TeaxtView
。
SpannableString
的实例可以包含文本和图像的组合。这是我能找到的一个简单示例:
public class TestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView textView = (TextView) findViewById(R.id.textview);
SpannableString ss = new SpannableString("abc");
Drawable d = getResources().getDrawable(R.drawable.icon32);
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);
ss.setSpan(span, 0, 3, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
textView.setText(ss);
}
看看这个link还有
关于Android 自定义文本View 来容纳图片和文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36834917/