标签: spannable

TextView使用不同的textSize

这可以在一个TextView中设置不同的textSize吗?我知道我可以使用以下方式更改文本样式:

TextView textView = (TextView) findViewById(R.id.textView);
Spannable span = new SpannableString(textView.getText());
span.setSpan(arg0, 1, 10, arg3);
textView.setText(span)
Run Code Online (Sandbox Code Playgroud)

我知道范围开始...文本结束我想改变大小.但我能为使用arg0arg3

android textview spannable

82
推荐指数
3
解决办法
6万
查看次数

如何使用自定义字体设置Spannable对象字体

我有Spannable对象,我想通过我之前加载的自定义字体设置其字体.

Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/font_Name.ttf");
Spannable span1 = /*Spannable Item*/;

/// I want to set span1 to have tf font face???
/// Here where I want help.
Run Code Online (Sandbox Code Playgroud)

编辑:
我的问题是我想为文本视图设置两种不同的自定义字体,所以我正在使用Spannable

android android-fonts spannable

63
推荐指数
8
解决办法
4万
查看次数

如何合并一些spannable对象?

我将一个spannable对象分成3个部分,做不同的操作,然后我需要合并它们.

Spannable str = editText.getText();
Spannable selectionSpannable = new SpannableStringBuilder(str, selectionStart, selectionEnd);
Spannable endOfModifiedSpannable = new SpannableStringBuilder(str, selectionEnd, editText.getText().length());
Spannable beginningOfModifiedSpannable = new SpannableStringBuilder(str, 0, selectionStart);            
Run Code Online (Sandbox Code Playgroud)

我该怎么做?我还没有找到所需的方法或构造函数.

android charsequence spannable

57
推荐指数
4
解决办法
2万
查看次数

如何摆脱带有可点击对象的Spannable字符串中的下划线?

我有Spannable Object一个Clickable Object集来.当Spannable String它显示在TextView它有蓝色文本和蓝色下划线(指示用户该文本是可点击的)时.我的问题是如何防止出现蓝色下划线TextView

android textview spannable

55
推荐指数
4
解决办法
2万
查看次数

SpannableString:是否可以应用两个或更多RelativeSizeSpans?

我正在尝试构造一个SpannableString,使它看起来像这样:

在此输入图像描述

两个字符(m,s)应小于其余字符.我试图在一个SpannableString中保存所有文本,并且我还尝试通过SpannableStringBuilder连接两个SpannableStrings.一个Spannable的代码如下所示:

spannable.setSpan(new RelativeSizeSpan(0.75f), spannable.length() - 1, spannable.length(), 0);
Run Code Online (Sandbox Code Playgroud)

但是,只应用了一种格式 - 使用SpannableStringBuilder时,只有"m"更小,而对整个文本使用一个SpannableString时,只有"s"更小.

调试还显示Spannables似乎只包含一个RelativeSizeSpan实例,这意味着一个类型只能有一个Span.这是真实的还是预期的行为?是否建议连接TextViews?

编辑:顺便说一下,我试图在这里删除HTML.fromHtml()调用性能原因(许多GC调用).

android spannablestring spannable

40
推荐指数
2
解决办法
3万
查看次数

对齐ImageSpan中心垂直周围的文本

我有ImageSpan一段文字.我注意到的是,周围的文本总是在文本行的底部绘制 - 更准确地说,文本行的大小随着图像的增长而增加,但文本的基线不会向上移动.当图像明显大于文本大小时,效果相当难看.

这是一个示例,大纲显示的界限TextView: 在此输入图像描述

我试图让周围的文本相对于正在显示的图像垂直居中.以下是蓝色文本显示所需位置的相同示例:

在此输入图像描述

以下是我受约束的约束:

  • 我不能使用复合drawables.图像必须能够在单词之间显示.
  • 根据内容,文本可以是多行的.我无法控制这一点.
  • 我的图像比周围的文字大,我不能减小它们的大小.虽然上面的示例图像大于实际图像(以演示当前行为),但实际图像仍然足够大,以至于此问题显而易见.

我已尝试android:gravity="center_vertical"在TextView上使用该属性,但这没有任何效果.我认为这只是文本行的垂直居中,但在文本行中,文本仍然在底部绘制.

我目前的思路是创建一个自定义跨度,根据行的高度和当前文本大小来移动文本的基线.这个跨度将包含整个文本,我将不得不计算与ImageSpans 的交集,所以我也可以避免移动图像.这听起来相当令人生畏,我希望有人能提出另一种方法.

任何和所有的帮助表示赞赏!

android text spannable imagespan

39
推荐指数
5
解决办法
2万
查看次数

spannable在android上用于textView

Tweet o = tweets.get(position);

TextView tt = (TextView) v.findViewById(R.id.toptext);
//TextView bt = (TextView) v.findViewById(R.id.bottomtext);         

EditText bt =(EditText)findViewById(R.id.bottomtext);
bt.setText(o.author);
Spannable spn = (Spannable) bt.getText();
spn.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC)
, 0, 100, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  

//bt.setText(o.author);    
tt.setText(o.content);
Run Code Online (Sandbox Code Playgroud)

我在我的Android应用程序中设置了Twitter数据.我想使用Spannable使字体粗体和斜体,但它不起作用,给出错误.我该怎么做?

java twitter android spannable

36
推荐指数
1
解决办法
5万
查看次数

Android SpannableString在文本部分后面设置背景

我想创建类似于此图像上看到的内容: 在此输入图像描述

我设法使用SpannableStringBuilder创建evertyhing,橙色圆角矩形除外.我可以使用BackgroundColorSpan将背景设置为该颜色,但我找不到一种方法使其圆整.任何想法我怎样才能做到这一点?

提前致谢!

编辑:我正在使用Xamarin.Android,但这是我的代码:

stringBuilder.SetSpan(new BackgroundColorSpan(Application.Context.Resources.GetColor(Resource.Color.orangeColor)), stringBuilder.Length() - length, stringBuilder.Length(), SpanTypes.ExclusiveExclusive);
Run Code Online (Sandbox Code Playgroud)

android textview spannablestring spannable

33
推荐指数
3
解决办法
1万
查看次数

将Spannable与String.format()结合使用

假设您有以下字符串:

String s = "The cold hand reaches for the %1$s %2$s Ellesse's";
String old = "old"; 
String tan = "tan"; 
String formatted = String.format(s,old,tan); //"The cold hand reaches for the old tan Ellesse's"
Run Code Online (Sandbox Code Playgroud)

假设您希望以此字符串结束,但也Span为任何替换的单词设置了特定的集合String.format.

例如,我们还想做以下事情:

Spannable spannable = new SpannableString(formatted);
spannable.setSpan(new StrikethroughSpan(), oldStart, oldStart+old.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
spannable.setSpan(new ForegroundColorSpan(Color.BLUE), tanStart, tanStart+tan.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
Run Code Online (Sandbox Code Playgroud)

是否有结识的开始指数的稳健的方式oldtan

请注意,只搜索'old'会在'cold'中返回'old',因此无效.

什么的工作,我想,正在寻找%[0-9]$s事前,并计算补偿值以反映在更换String.format.这看起来很令人头疼,我怀疑可能有一种方法String.format可以提供有关其格式化细节的更多信息.好吧,有吗?

android spannablestring spannable

23
推荐指数
3
解决办法
8394
查看次数

带有Spannable的按钮setText不适用于Android 5.0 Lollipop

我有一个简单的Button:

<Button
    android:id="@+id/test"
    android:textColor="@color/white"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
Run Code Online (Sandbox Code Playgroud)

并尝试通过以下方式更改文本属性:

SpannableString span = new SpannableString(text);
span.setSpan(new AbsoluteSizeSpan(8, true), 5, 10, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
testButton.setText(span);
Run Code Online (Sandbox Code Playgroud)

它适用于Android 4.3但不适用于5.0.

有趣的是,当我将实现更改ButtonTextView5.0时,它可以正常工作.似乎是Button棒棒糖的东西.

android button spannable android-5.0-lollipop

22
推荐指数
1
解决办法
5765
查看次数