如何使用Android TextView实现此类效果。它看起来像选择的文本,我在API中找不到类似的东西。
这不是视图的背景颜色,而是仅适用于文本的背景颜色。你可以看到它在换行符时是如何停止的,文本行之间有一条细白线。
答案 0 :(得分:14)
<TextView
android:background="#0000FF"
android:textColor="#FFFFFF" />
定义一个带有蓝色背景的TextView
和白色文字......是您需要的吗?
答案 1 :(得分:4)
据我所知,没有覆盖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
是自定义范围。
看到很多人都懒得查看如何制作自定义跨越式,这是一个例子
public class CustomSpannable extends ClickableSpan
{
@Override public void updateDrawState(TextPaint ds)
{
super.updateDrawState(ds);
ds.setUnderlineText(true);
}
}
此示例将为文本加下划线。使用TextPaint
更改跨区文本的外观。
答案 2 :(得分:4)
我相信有更简单,更好的方法来实现这一目标:只需创建一个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中“突出显示”的文本,并“颜色”应设置“突出显示”文本的背景颜色。
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);
我认为这应该足够了。
由于
答案 3 :(得分:1)
使用此示例
<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
答案 4 :(得分:1)
如果你想从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);
答案 5 :(得分:0)
在textview
文件中的.xml
下方试试:
<TextView android:background="#0000FF">
答案 6 :(得分:-1)
尝试将此用作文本背景颜色
<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"/>
答案 7 :(得分:-1)
您可以在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>