0

SpannableString内で2つの異なる文字列の間にドロアブルを配置するにはどうすればよいですか?異なる言語で読んだときの言葉の長さの変化により、インデックス番号に整数を使用したくない。インデックス番号を使用せずにSpannableStringBuilder内の2つの文字列リソースの間にドロワブルを配置する方法

TextView txt1 = new TextView(getActivity()); 
    txt1.setTransformationMethod(null); 
    SpannableStringBuilder ssb = new SpannableStringBuilder(); 
    ssb.append(getString(R.string.hello)); 
    ssb.append(" "); 
    ssb.append(" "); 
    ssb.append(getString(R.string.world)); 

    Drawable d1 = ContextCompat.getDrawable(getContext(), R.drawable.ic_arrows_leftandright_black); 
    d1.setBounds(0, 0, d1.getIntrinsicWidth(), d1.getIntrinsicHeight()); 
    ImageSpan span1 = new ImageSpan(d1, ImageSpan.ALIGN_BASELINE); 
    ssb.setSpan(span1, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); 
    txt1.setTextColor(Color.BLACK); 
    txt1.setText(ssb); 
+0

あなたはworld'こんにちは 'の間に、自分の引き出し可能にさせたいだろうか? – KeLiuyue

+0

こんにちはMacaronLover、私の答えをチェックできますか? – KeLiuyue

答えて

1

これを試してください。

SpannableStringBuilder ssb = new SpannableStringBuilder(); 
    ssb.append(getString(R.string.hello)); 
    ssb.append(" "); 
    ssb.append(" "); 
    ssb.append(getString(R.string.world)); 

    // edited here , add length 
    int length = getString(R.string.hello).length(); 

    Drawable d1 = ContextCompat.getDrawable(getContext(), R.drawable.ic_arrows_leftandright_black); 
    d1.setBounds(0, 0, d1.getIntrinsicWidth(), d1.getIntrinsicHeight()); 
    ImageSpan span1 = new ImageSpan(d1, ImageSpan.ALIGN_BASELINE); 

    // edited here , add length to it 
    ssb.setSpan(span1, length, length + 2, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); 

これはStringの長さです。

int length = getString(R.string.hello).length(); 
    int length2 = getString(R.string.world).length(); 
    int lengthSum = ssb.length(); 
  • getString(R.string.hello)は左側にあった場合。 これを使用できます。

    ssb.setSpan(span1, length, length + 2, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); 
    

別の方法

  • あなたがこれを使用することができます。

    ssb.setSpan(span1, lengthSum - length2 - 2, lengthSum - length2, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); 
    
+0

完璧に動作します。どうもありがとう。 :-) – MacaronLover

+0

幸運。私はあなたを助けてうれしいです。 – KeLiuyue

関連する問題