我有一个textview,其中包含图像和一些文本.
我以编程方式将可绘制图像添加到文本视图的左侧
txtIDFav.setCompoundDrawablesWithIntrinsicBounds(R.drawable.fav_enabled, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)
我已将文本视图与中心对齐
txtIDFav.setGravity(Gravity.CENTER);
Run Code Online (Sandbox Code Playgroud)
现在,textview中的文本与中心对齐.但图像在左侧.
例如:[image] _____________________ mytext
使用_来提供空间是不允许的.
我想将图像与文本对齐.
例如:_____________________ [image] mytext
请指教.
谢谢,感谢.
我也面临着同样的问题,但我不想分别使用 Button 和 TextView ,也不想使用 java 代码来制作它。所以我找到了这个。我知道我很晚才给出解决方案。但它可以帮助你
<FrameLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_margin="20dp"
android:background="@drawable/next_btn_bg_rounded_corners">
<TextView
android:id="@+id/btn_restore_purchases"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@null"
android:drawableLeft="@mipmap/restore"
android:drawablePadding="10dp"
android:drawableStart="@mipmap/restore"
android:text="@string/restore_purchases"
android:textAllCaps="false"
android:textColor="@color/white" />
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
你可以尝试这个,它应该有效:
Spannable span = new SpannableString(" " + txtIDFav.getText()); // or set your text manually
Drawable drawable;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
drawable = getResources().getDrawable(R.drawable.fav_enabled, getContext().getTheme());
}
else {
drawable = getResources().getDrawable(R.drawable.fav_enabled);
}
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
ImageSpan imageSpan = new ImageSpan(drawable);
span.setSpan(imageSpan, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
txtIDFav.setText(span);
Run Code Online (Sandbox Code Playgroud)
使用 SpannableString 将可绘制对象嵌入到文本中。
SpannableStringBuilder textspan = new SpannableStringBuilder(" " + yourText);
Drawable icon = getResources().getDrawable(R.drawable.fav_enabled);
// jump drawable to the text view's state (if it is a state drawable)
icon.setState(textView.getBackground().getState()); // match the background state
textspan.setSpan(new ImageSpan(icon, ImageSpan.ALIGN_BOTTOM), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(textspan);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8249 次 |
| 最近记录: |