Articles of spannable

如何将SpannedString转换为Spannable

您好我在textview中设置了一些文本。 TextView tweet = (TextView) vi.findViewById(R.id.text); tweet.setText(Html.fromHtml(sb.toString())); 然后我需要将TextView的文本转换为Spannble 。 所以我这样做: Spannable s = (Spannable) tweet.getText(); 我需要将它转换为Spannable因为我将TextView传递给了一个函数: private void stripUnderlines(TextView textView) { Spannable s = (Spannable) textView.getText(); URLSpan[] spans = s.getSpans(0, s.length(), URLSpan.class); for (URLSpan span : spans) { int start = s.getSpanStart(span); int end = s.getSpanEnd(span); s.removeSpan(span); span = new URLSpanNoUnderline(span.getURL()); s.setSpan(span, start, end, 0); […]

编辑文本视图,图像和文本环绕图像

我正在构建一个富文本编辑器。 我已经实现了像粗体斜体等文本格式以及像blockQuote这样的段落格式。 现在我想在编辑器中添加图像,文本应该环绕它。 我已经使用SpannableString()和SpannableString()以及SpannableString()实现了所有这些。 我可以使用ImageSpan()将图像添加到一行,但是将其添加到内联中并且只是在那里添加一个字符,我想要的是将其插入段落中,其余文本应该环绕它。 我可以通过以下代码在文本的开头添加图像..但我无法将其对齐到中心和右边。 SpannableString string = new SpannableString(“Text with icon and padding”); string.setSpan(new IconMarginSpan(bitmap, 30), 0, string.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 怎么做 ? 举个例子? 或者要遵循什么程序?

向Spannable添加填充/边距

我正在使用BackgroundColorSpan来自定义TextView各个部分。 这是我的代码: String s = “9.5 Excellent!”; s.setSpan(new BackgroundColorSpan(darkBlue, 0, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); s.setSpan(new BackgroundColorSpan(darkBlue, 3, 14, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 这给了我以下结果: 这就是我想要实现的目标: 正如你所看到的,我正在尝试为“9.5”添加填充以及“优秀!”。 字符串,但到目前为止我一直无法find解决方案。 有没有办法将这个填充/边距添加到这些Spannables?

在TextView / EditText中选择一个单词

如何在android中的TextView / EditText中选择一个单词。 我在TextView / EditText有一些文本,当用户点击一个单词时,我希望选择该单词,然后当我调用getSelectedText()方法时,它应该返回我选择的单词。 任何帮助,将不胜感激。 我的目标是在用户点击TextView / EditText的特定单词时执行某些操作。

如何在不同的单词上单击或点击TextView文本?

如何通过单击带有两个不同单词的文本视图来移动到另一个视图。 这是我正在使用的字符串。 By clicking Sign Up, you are indicating that you have read and agree to the Term of Use and Privacy Policy. 我想用不同颜色和可点击的这两个词(使用条款,隐私政策)。 我知道要为特定单词制作颜色。 我想让它可点击。

将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” 假设您希望以此字符串结束,但也为String.format替换的任何单词设置了特定的Span设置。 例如,我们还想要做以下事情: 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); 是否有一种强有力的方式来了解old和tan的起始指数? 请注意,只搜索’old’会在’cold’中返回’old’,因此无效。 我想, %[0-9]$s预先搜索%[0-9]$s […]

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

我有一个简单的Button : 并尝试通过以下方式更改文本属性: SpannableString span = new SpannableString(text); span.setSpan(new AbsoluteSizeSpan(8, true), 5, 10, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); testButton.setText(span); 它适用于Android 4.3,但不适用于5.0。 有趣的是,当我将实现从Button更改为TextView它在5.0上工作正常。 似乎是Lollipop中的Button 。

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

我在一段文字中有一个ImageSpan 。 我注意到的是,周围的文本总是在文本行的底部绘制 – 更准确地说,文本行的大小随图像一起增长,但文本的基线不会向上移动。 当图像明显大于文本大小时,效果相当难看。 这是一个示例,大纲显示TextView边界: 我试图让周围的文本相对于正在显示的图像垂直居中。 以下是蓝色文本显示所需位置的相同示例: 以下是我受约束的约束: 我不能使用复合drawables。 图像必须能够在单词之间显示。 根据内容,文本可以是多行的。 我无法控制这一点。 我的图像比周围的文字大,我不能减小它们的大小。 虽然上面的示例图像大于实际图像(以演示当前行为),但实际图像仍然足够大以至于这个问题是显而易见的。 我尝试在TextView上使用android:gravity=”center_vertical”属性,但这没有任何效果。 我相信这只是文本行的垂直居中,但在文本行中,文本仍然在底部绘制。 我目前的思路是创建一个自定义跨度,根据行的高度和当前文本大小来移动文本的基线。 这个范围将涵盖整个文本,我将不得不计算与ImageSpan的交集,所以我也可以避免移动图像。 这听起来相当令人生畏,我希望有人能提出另一种方法。 任何和所有帮助表示赞赏!

如何在editText中处理imageSpan上的onClick事件?

我正在一个应用程序中,用户从画廊中select一个图像,它将被添加到editText,现在我想如果用户点击editText中的图像,它应该在fullScreen中打开,我使用下面的代码: public void addToEdt(Bitmap bitmap){ SpannableString ss = new SpannableString("abc"); Drawable d = new BitmapDrawable(getResources(), bitmap); d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight()); ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE); ss.setSpan(span, 0, 3, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); edt_note.setTransformationMethod(null); edt_note.getText().insert(edt_note.getSelectionStart(), ss); final int start = ss.getSpanStart(span); final int end = ss.getSpanEnd(span); ClickableSpan click_span = new ClickableSpan() { @Override public void onClick(View widget) { […]

SpannableString在横向模式下显示不正确

我有一段代码,使用SpannableString将一些图像添加到EditText中,如下所示: SpannableString ss = new SpannableString("Some random String in my application."); Drawable d = getResources().getDrawable(R.drawable.emoticon_0001); ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BOTTOM); ss.setSpan(span, startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 我之间有一些指数计算,因为它们不重要。 代码工作正常。 这里有一些它的形象: 非编辑模式下的纵向和横向: 但是,一旦我开始在风景模式下编辑,图像后面的文本出现: 大多数人都知道,怪异的string表示iPhone中表情符号的Unicode。 有没有人遇到过这个问题? 编辑:用android:imeOptions="actionDone|flagNoExtractUi" ,不起作用,单词build议将掩盖我的EditText。