我有一个包含三行的文本视图,例如姓名、电话和地址。我想区分第三行,我想在那里添加图像,为其获取圆形边框并更改背景颜色。我有办法吗?
问问题
3344 次
4 回答
7
要更改背景的一部分,您需要的是 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);
于 2015-12-07T22:16:37.407 回答
1
您必须使用 Spannable 或必须使用 Html。这两个都会起作用。
html示例:
YOURTEXTVIEW.setText(Html.fromHtml("<font color='green'><b>" + YOUR BACKGROUND TEXT + "</b></font>" + " "+ YOUR LONG LONG TEXT));
您必须只为设置背景编写 Html。
对于 spannable,您将从 Google 获得大量数据。
于 2013-09-20T08:46:55.367 回答
0
以一种简单的方式,您可以像这样使用 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>
另见快照
于 2013-09-20T08:54:30.230 回答
-1
像这样改变背景
自定义形状.xml
<?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 重叠,则在自定义布局上添加填充。
于 2013-09-20T10:04:29.810 回答