如何使用 Android TextView 实现这样的效果。它看起来有点像选定的文本,我在 API 中找不到类似的东西。
这不是视图的背景颜色,而是仅用于文本的背景颜色。您可以看到它如何在换行符处停止,并且在文本行之间有一条细白线。
如何使用 Android TextView 实现这样的效果。它看起来有点像选定的文本,我在 API 中找不到类似的东西。
这不是视图的背景颜色,而是仅用于文本的背景颜色。您可以看到它如何在换行符处停止,并且在文本行之间有一条细白线。
<TextView
android:background="#0000FF"
android:textColor="#FFFFFF" />
会定义一个TextView
蓝色背景和白色文本...是你需要的吗?
据我所见,如果不覆盖 TextView 并在包含间隙颜色的视图上绘制自定义油漆,就没有“好”的方法。
即使设置lineSpacingExtra
属性也只会扩展背景颜色。
您还可以考虑创建自定义spannable
并像使用它一样使用它
Spannable str = new SpannableStringBuilder("How can I achieve such an effect with an Android TextView. It looks somehow like selected text and I couldn't find something similar in the API.");
str.setSpan(new NewSpannableClass(), 0, str.length() - 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
((TextView)findViewById(R.id.text)).setText(str);
NewSpannableClass
自定义跨度在哪里。
看到很多人都懒得去查找如何制作自定义 spannables,这里有一个例子
public class CustomSpannable extends ClickableSpan
{
@Override public void updateDrawState(TextPaint ds)
{
super.updateDrawState(ds);
ds.setUnderlineText(true);
}
}
此示例将在文本下划线。用于TextPaint
更改跨区文本的外观。
我相信有一种更简单、更好的方法来实现这一点:只需创建一个 backgroundColorSpan 并将其添加到 SpannableString。沿着这些思路:
public static SpannableString buildBackgroundColorSpan(SpannableString spannableString,
String text, String searchString, int color) {
int indexOf = text.toUpperCase().indexOf(searchString.toUpperCase());
try {
spannableString.setSpan(new BackgroundColorSpan(color), indexOf,
(indexOf + searchString.length()), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
} catch (Exception e) {
}
return spannableString;
}
其中“spannableString”是创建并假定用“text”初始化的 SpannableString 对象;“searchString” 表示您希望在 TextView 中“突出显示”的一段文本,“color”表示应设置“突出显示”文本的背景颜色。
String text = "The Quick Brown Fox Jumps over the Lazy Dog";
String searchString = "brown";
int color = Color.parseColor("#FFF5F19E");
SpannableString spannableString = new SpannableString(text);
spannableString = StringUtils.buildBackgroundColorSpan(spannableString, text, searchString, color);
我认为这应该足够了。
谢谢
如果您想从 XML 中执行此操作,请尝试刚刚回答的其他人的解决方案:
<TextView
android:id="@+id/TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="#ffffff"
android:background="#1bgtbgt"/>
如果您想从活动代码中执行此操作,您可以动态更改它,例如尝试:
text.setBackgroundColor( int color);
使用这个例子
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#0000FF"
android:textColor="#FFFFFF" />
采摘颜色使用此链接 http://html-color-codes.info/
红色:#750A0A
蓝色:#002BFF
绿色:#33FF00
白色:#FFFFFF
黑色:#000000
textview
在in.xml
文件下面试试这个:
<TextView android:background="#0000FF">
只需将 TextView 的长度设置为match_parent
假设它嵌套在跨越整个屏幕长度的父值中,您的文本将具有相同的长度,但框将增加到整个屏幕的长度。
您可以在 TextView 周围添加另一个布局并将其背景设置为您想要的颜色
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#000000" >
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textColor="#FFFFFF"
android:text="@string/text" />
</LinearLayout>
尝试将其用于文本背景颜色
<TextView
android:id="@+id/comment_dis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Stack Overflow
android:textColor="#ffffff"
android:background="#3cabdc"/>