2010-07-04 18 views
45

Fotoğraf kapsamı ile SpannableString oluşturma ve görüntüleme hakkında bir örnek arıyorum. Suratların satır içi görüntüsü gibi bir şey. Aşağıdaki ve iş yapmak gibi görünüyor BulunanResim örneği ile SpannableString

Çok teşekkürler

cevap

91

:

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); 
} 
+2

'd.setBounds (0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight()); ', kendine özgü sınırlar yoktur Drawables anahtarıdır. –

+0

getDrawable işlevi amorti edilmiş cevabınız lütfen –

+1

cevabınızı güncelleyin ImageSpan'ın pozisyonunu değiştirilebilen dizesi içinde ayarlamak istiyorum. string? Örnek Alttan Imagspan'a 10 dp'lik bir kenar boşluğu vermek istiyorum. – Khay

17

SpannableString + ImageSpan 21 & 22 Android API çalışmaz (I Android Studio 1.2 test. Eğer bunu yaparsanız 1.1 emülatörü), ancak:

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

SpannableString + ImageSpan çalışacaktır.

bu yazı esinlenerek: https://stackoverflow.com/a/26959656/3706042

+2

API '22'yi çalıştıran cihazım' SpannableString' + 'ImageSpan' öğesini görüntüler. 'VectorDrawable' kullanıyorum ama ... – Sakiboy

+0

Gerçekten doğru +1'desin! Bu sihirli yöntem işe yarar – Corbella