我有三行文字视图,例如姓名,电话和地址。我想区分第三行,我想在那里添加图像,为它获得一个圆形边框并更改背景颜色。我有办法吗?
答案 0 :(得分:6)
要更改背景的一部分,您需要的是Spannable。
int startColor = 0; //the size that start the background color
int endColor = 100; //the size that ends the background color
TextView textView = (TextView) findViewById(R.id.text_view_id);
Spannable spannable = new SpannableString(" Handle action bar item clicks here. The action bar will automatically handle clicks on the Home");
spannable.setSpan(new BackgroundColorSpan(Color.BLUE), startColor, endColor,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
如果您想点击它,可以使用:
spannable.setSpan(new ClickableSpan() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "link clicked", Toast.LENGTH_SHORT).show();
}
}, startColor, endColor, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
答案 1 :(得分:1)
您必须使用Spannable或必须使用Html。这两者都有效。
Html示例:
YOURTEXTVIEW.setText(Html.fromHtml("<font color='green'><b>" + YOUR BACKGROUND TEXT + "</b></font>" + " "+ YOUR LONG LONG TEXT));
您必须为设置背景编写Html。
对于spannable,您将从Google获得大量数据。
答案 2 :(得分:1)
以简单的方式,您可以使用3个像这样的文本视图
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Details" />
<LinearLayout
android:layout_marginLeft="15dp"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Name" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Phone" />
<TextView
android:background="#f00"
android:textColor="#ffffff"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Address" />
</LinearLayout>
</LinearLayout>
另见快照
答案 3 :(得分:0)
像这样改变背景
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="your_back_ground_color" />
<corners android:radius="8dp" />
<stroke
android:width="0.5dp"
android:color="Border_color" >
</stroke>
</shape>
把它放在res / drawable
中 布局xml中的
<TextView
android:background="@drawable/customshape"
android:textColor="your_color"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="your_text" />
我希望如果它与textview重叠在自定义布局上添加填充。