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);