我有一个文本视图,其中包含图像和一些文本。
以编程方式我将可绘制图像添加到文本视图的左侧
txtIDFav.setCompoundDrawablesWithIntrinsicBounds(R.drawable.fav_enabled, 0, 0, 0);
我已使用
将文本视图对齐到中心txtIDFav.setGravity(Gravity.CENTER);
现在textview中的文本与中心对齐。但图像在左侧。
例如:[image] _____________________ mytext
使用_来提供空间,因为它是不允许的。
我想将图像与文本对齐。
例如: _____________________ [image] mytext
请建议。
谢谢并感谢。
答案 0 :(得分:3)
试试这个,它应该有效:
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);
答案 1 :(得分:1)
我也面临着相同的问题,但是我不想分别使用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>
答案 2 :(得分:0)
使用SpannableString将drawable嵌入文本中。
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);
答案 3 :(得分:0)
我认为是因为textView的宽度设置为match_parent或fill_parent。尝试将textView width设置为wrap_content,并将整个textView不仅放在文本中心。
布局:
sudo chown -R $USER /usr/local/share/systemtap
的活动:
sudo chgrp -R staff /usr/local/share/systemtap
sudo chmod -R g+w /usr/local/share/systemtap
答案 4 :(得分:-1)
无法在文本视图的背景中设置图像,而不是这样你可以在textview上设置你的drawable像这样
<强>机器人:drawableRight =&#34; @可绘制/ ic_launcher&#34; 强>
&#34;或&#34;
<强>机器人:drawableleft =&#34; @可绘制/ ic_launcher&#34; 强>
&#34;或&#34;
<强>机器人:drawableBottom =&#34; @可绘制/ ic_launcher&#34; 强>
仅针对您的问题解决方案,您可以通过这种方式在framelayout中使用texview
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<FrameLayout
android:layout_width="match_parent"
android:background="@drawable/ic_launcher"
android:layout_gravity="center"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView1"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
</FrameLayout>
答案 5 :(得分:-1)
您必须编写如下代码: -
$BASH