0

目前我有一個像這樣的spannableString,圖標位於標題字符串的左側。問題是,有沒有辦法讓圖標在字符串上方,而圖標是對齊中心?如何將SpannableString修改爲字符串下方的圖標?

樣品是這樣的:

[] <==== This is the icon 
TitleTest <=== This is the title 
    ABCD 

感謝

這裏是我的代碼嘗試:

Drawable image = context.getResources().getDrawable(R.drawable.ic_launcher); 
    image.setBounds(0, 0, image.getIntrinsicWidth(), image.getIntrinsicHeight()); 
    // Replace blank spaces with image icon 
    SpannableString sb = new SpannableString(" " + tabTitles[position]); 
    ImageSpan imageSpan = new ImageSpan(image, ImageSpan.ALIGN_BASELINE); 
    sb.setSpan(imageSpan, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
    return sb; 

感謝您的幫助

回答

0

把三個視圖(ImageView的用於圖標和2 TextView s)垂直LinearLayout並使用0123使用XML中的屬性來集中LinearLayout中的視圖。另外,將TextView上的android:gravity屬性設置爲「居中」,以將文本居中在TextView內。

如果你不想使用XML(這似乎是這種情況)layout_gravity可以使用帶寬,高度和重力參數的LinearLayout.LayoutParams構造函數來設置。文本對齊可以使用mTextView.setGravity(Gravity.CENTER);

0

只需使用drawableTop屬性即可。

<TextView 
    android:drawableTop="@drawable/my_drawable"/> 

或者從代碼:

myTextView.setCompoundDrawablesWithIntrinsicBounds(
     0, R.drawable.my_drawable, 0, 0);