代码之家  ›  专栏  ›  技术社区  ›  Asahi

带图像示例的SpannableString

  •  51
  • Asahi  · 技术社区  · 14 年前

    我正在寻找一个如何构建和显示具有图像跨度的spannableString的示例。类似于微笑的内联显示。

    谢谢

    2 回复  |  直到 7 年前
        1
  •  103
  •   Community CDub    7 年前

    发现了以下问题,似乎可以解决问题:

    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 = ContextCompat.getDrawable(this, 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); 
    } 
    
        2
  •  19
  •   Community CDub    8 年前

    spannableString+imagespan不能在Android API 21&22中工作(我在Android Studio 1.2.1.1 Emulator中测试过),但如果您这样做:

    TextView textView  = (TextView) findViewById(R.id.textview);
    textView.setTransformationMethod(null);
    ...
    textView.setText(ss); 
    

    spannableString+imagespan将起作用。

    我受到这篇文章的启发: https://stackoverflow.com/a/26959656/3706042