Articles of spannable

如何在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。

我的spannable怎么没有显示?

背景 我想在TextView上使用一个简单的SpannableString ,基于我发现的一个UnderDotSpan类( 这里 )。 原来的UnderDotSpan只是在文本下面放置一个特定大小和颜色的点(不重叠)。 我正在尝试的是先正常使用它,然后使用自定义的drawable而不是点。 问题 与正常的跨度使用相反,这只是不显示任何东西。 甚至没有文字。 这是如何完成一个正常的跨度: val text = "1" val timeSpannable = SpannableString(text) timeSpannable.setSpan(ForegroundColorSpan(0xff00ff00.toInt()), 0, text.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) textView.setText(timeSpannable); 它将在TextView中显示一个绿色的“1”。 但是,当我尝试下一个spannable,它(整个TextView的内容:文本和点)根本不显示: val text = "1" val spannable = SpannableString(text) spannable.setSpan(UnderDotSpan(this@MainActivity, 0xFF039BE5.toInt(), textView.currentTextColor), 0, text.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) textView.setText(spannable, TextView.BufferType.SPANNABLE) // this also didn't work: textView.setText(spannable) 奇怪的是,在我使用的一个项目中,它在RecyclerView中工作正常,而在另一个项目中,它却没有。 这里是UnderDotSpan的代码: class UnderDotSpan(private val mDotSize: Float, […]

Android:如何将Spannable.setSpan和String.format结合起来?

我将Span设置为文本的一部分。 跨度本身运作良好。 然而,文本是由Resources的String.format创build的,我不知道文本中的部分的start和end ,我将设置跨度为。 我尝试在strings.xml使用自定义HTML标记,但getText或getString删除它们。 我可以使用像这样的getString(R.string.text, "<nb>" + arg + "</nb>") ,然后Html.fromHtml() ,因为arg正是我想要设置Span的地方。 我看到这种使用文本格式"normal text ##span here## normal text" 。 它parsingstring,删除标签并设置Span。 我的问题是,是否有更好的方法来完成将span设置为如"something %s something"格式化string还是应该使用上述方法之一?

在EditText中,是否有一种方法来禁用span上的自动更正?

我有一个可以自定义跨度的EditText ,我不希望它们成为拼写检查的一部分。 我知道我可以使用标志android:inputType=textNoSuggestions来完全禁用这些build议,但是我想根据光标的位置以及是否对焦来处理它。 有任何想法吗?

向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”和“优秀”添加填充。 string,但我一直无法find解决scheme。 有没有办法将这种填充/边距添加到这些Spannables?

Android SpannableString在文本的后面设置背景

我想创build一个类似于这个图像上看到的东西: 我设法用SpannableStringBuilder创buildevertyhing,除了橙色的圆angular矩形。 我可以使用BackgroundColorSpan将背景设置为该颜色,但我无法find使其圆整的方法。 任何想法我怎么能做到这一点? 提前致谢! 编辑:我使用Xamarin.Android,但这里是我的代码: stringBuilder.SetSpan(new BackgroundColorSpan(Application.Context.Resources.GetColor(Resource.Color.orangeColor)), stringBuilder.Length() – length, stringBuilder.Length(), SpanTypes.ExclusiveExclusive);

带有Spannable的buttonsetText不适用于Android 5.0 Lollipop

我有一个简单的Button : <Button android:id="@+id/test" android:textColor="@color/white" android:layout_width="wrap_content" android:layout_height="wrap_content" /> 并尝试通过以下方式更改文本属性: 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。 似乎是在棒棒糖Button东西。

结合Spannable和String.format()

假设你有以下string: 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,但也有一个特定的Span设置为由String.formatreplace的任何字。 例如,我们也想做以下事情: 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的开始指数? 请注意,只要search“旧”,就会在“冷”中返回“旧”,这样就不会起作用。 我猜, 预计会有什么效果,正在search%[0-9]$s […]

在TextView / EditText中select一个单词

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