- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我所期望的是这样的。 这是一篇影评,当某些文字可能剧透时,会被这些标签包裹[剧透][/剧透]。所以我写了一个方法找出每个剧透词的开始索引和结束索引,然后使用 MaskFilterSpan 对其进行模糊处理。
但结果并不好。
如果我只是将 MaskFilterSpan 替换为 StrikethroughSpan 或 BackgroundColorSpan,它就完美无缺。
我的代码:
private void testBlurText() {
String text = "Alec Baldwin nailed his job; \n" +
"The animators nailed their job (seriously, the art style and changes were amazing);\n" +
"The ideas guy nailed his job ([spoiler]It's all the imagination of the kid[/spoiler]);\n" +
"The writers just let the story down :( ([spoiler]Although at the beginning it's clear that the whole shebang is the older kid's imagination, the writers probably realised that the script was too short and so the end got changed to something that makes no sense. Why would Tim receive the kid for a second time? - unless it was all a dream...[/spoiler] ).\n" +
"\n" +
"All in all, a good movie, amazing acting and animating, partly let down by a badly written ending to the story. 8/10.";
SpannableString spanText = new SpannableString(text);
List<Pair<Integer, Integer>> spoilersContainer = new ArrayList<>();
getSpoilerIndex(text, 0, spoilersContainer);
for (Pair<Integer, Integer> pair : spoilersContainer) {
spanText.setSpan(new MaskFilterSpan(new BlurMaskFilter(20, BlurMaskFilter.Blur.NORMAL)), pair.first, pair.second, Spanned.SPAN_INCLUSIVE_INCLUSIVE);
Logger.d("SpoilerIndex:" + pair.toString());
}
tvTestBlurText.setText(spanText);
}
private void getSpoilerIndex(String rawComment, int beginIndex, List<Pair<Integer, Integer>> spoilersContainer) {
int startIndex = rawComment.indexOf("[spoiler]", beginIndex);
int endIndex = rawComment.indexOf("[/spoiler]", beginIndex);
if (startIndex != -1 && endIndex != -1) {
spoilersContainer.add(new Pair<>(startIndex, endIndex + "[/spoiler]".length()));
getSpoilerIndex(rawComment, endIndex + "[/spoiler]".length(), spoilersContainer);
}
}
MaskFilterSpan 有什么问题吗,或者只是一个错误?
最佳答案
如果您在 AndroidManifest.xml 中的 Activity 上设置 android:hardwareAccelerated="false"
,它会正确呈现。
BlurMaskFilter 不支持硬件加速。
您可以在此处检查不支持的绘图操作:
http://developer.android.com/guide/topics/graphics/hardware-accel.html
关于android - 如何使用 Android SpannableString 和 MaskFilterSpan 按预期模糊 TextView 中的某些文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46089196/
我正在使用一段代码,该代码在 SpannableString 文本中查找正则表达式,并删除该表达式的任何实例的第一个和最后一个字符 - 在本例中,文本由 [方括号] 绑定(bind)。 输出应该是相同
我有一段代码使用 SpannableString 将一些图像添加到 EditText 中,如下所示: SpannableString ss = new SpannableString("Some ra
我知道 SpannableString 可以在一个 TextView 中设置不同的文本大小,但如果以编程方式添加 TextView ,则它不起作用。 String s = "Best Ever"; S
我想通过 Intent 发布一个带有 SpannableString 的对象。我让对象实现 Serializable,但它会抛出 java.io.NotSerializableException: a
目前我有一个 SpannableString 对象,其中设置了多个 Clickable 对象。因此,一个字符串有许多可点击对象,并且根据用户点击的单词/部分,应用程序将继续并处理该点击事件。前几天我在
我正在尝试构建一个 SpannableString,使其看起来像这样: 两个字符 (m, s) 应该比其他字符小。我试图将所有文本保存在一个 SpannableString 中,并且我还尝试通过 Sp
我正在寻找如何使用 ImageSpan 构建和显示 Android SpannableString 的示例。类似笑脸的内联显示。 非常感谢。 最佳答案 找到以下内容,它似乎可以完成这项工作: publ
我想创建与此图片类似的东西: 我设法用 SpannableStringBuilder 创建了evertyhing,橙色圆角矩形除外。我可以使用 BackgroundColorSpan 将背景设置为该颜
我有一个 TextView,在其中显示具有不同 Span 大小的 SpannableString。我需要知道 SpannableString 中最后一个单词的确切高度,但我使用的方法是错误的。我做错了
情况: 我有读取通知文本的代码 String notificationText = sbn.getNotification().extras.getString("android.text"); 当读
对于一个项目,我必须在 EditText 中使用一些属性编辑文本,例如粗体、斜体、大小等。因此,我制作了一个 CustomSpan,它实现了 StyleSpan,具有我需要的所有属性。在我的代码下面:
我有一个网址,我希望它只显示为一个单词,单击它会从我的警报对话框中打开 Web 浏览器。一切正常,只是现在显示了完整的网址。我不知道如何隐藏这一点。这是我的 java 文件中的代码。 Tv = ((T
我有一个 HTML 格式的字符串并保存为 SpannableString。在配置更改等 onSaveInstanceState 之前调用 onRestoreInstanceState 以恢复状态等。我
我有一个带有自定义列表适配器(扩展了 BaseAdapter)的 ListView。我的列表项的 View 是从这个布局中膨胀的: 在 g
你好,下午好,我需要 SpannableString 类的帮助,我对这个类很陌生,到目前为止,我已经在我的 onCreate() 方法中创建了这段代码: String texto = "Tex
我使用以下代码,它将错误的文本范围包装为粗体 final StyleSpan span = new StyleSpan(BOLD); SpannableString ss = new
我有一个 TextView,里面有一个 SpannableString 来突出显示搜索到的词。像这样: 可以看出,我正在使用 android:lineSpacingExtra 为线条提供合适的间距,
我想在我的 TextView 中显示一个图像,在文本本身的前面。我尝试了 CompoundDrawable 但第二行的文本没有出现在第一行的图像下方。 我需要这样的东西: var imageSpan
我正在尝试制作一款游戏来帮助 children 学习数学。我给代码编号上色,以便它们可以遵循逻辑。我还使用 textView.append() 构建一个长字符串以放入 Activity 中。 因为我在
添加到 spannable 的 span 的优先级会影响它在 TextView 中的外观。当我们向如下所示的 spannable 添加两个嵌套的字符样式时 SpannableStringBuilder
我是一名优秀的程序员,十分优秀!