Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何克隆ImageSpan_Android - Fatal编程技术网

Android 如何克隆ImageSpan

Android 如何克隆ImageSpan,android,Android,如何克隆imagespan 我想将setspan()与一个图像span一起使用两次 ImageSpan is = new ImageSpan(this,R.mipmap.ic_launcher); String tx = "dfsfsfsfsfsdfsdfs"; SpannableString ss = new SpannableString(tx); ss.setSpan(is,0,1, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);

如何克隆imagespan

我想将setspan()与一个图像span一起使用两次

    ImageSpan is = new ImageSpan(this,R.mipmap.ic_launcher);
    String tx = "dfsfsfsfsfsdfsdfs";
    SpannableString ss = new SpannableString(tx);
    ss.setSpan(is,0,1, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
    ss.setSpan(CharacterStyle.wrap(is),6,7, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
    tv.setText(ss);
但是CharacterStyle.wrap不适用于imagespan


感谢您的回答。

基本上,您不能这样做,原因可能是框架中存在一个bug。最终绘制时,
ImageSpan
s被视为
ReplacementSpan
s;i、 例如,
ImageSpan
s通过从
span
序列中获取
ReplacementSpan
s来找到。但是,当您
wrap()
一个
ImageSpan
时,它被视为
MetricAffectingSpan
——替换span的超类,并被包装在不同的
MetricAffectingSpan
子类中,因此当绘制例程查找
ReplacementSpan
时,它不会得到任何包装的
ImageSpan
s,它们只是被忽略。很好,嗯?事实上,我不该说“你不能”。我的意思是你不能使用
CharacterStyle.wrap()
。您当然可以从
ReplacementSpan
的后代创建自己的包装器类;e、 “在我的快速测试中,它似乎工作得很好。”@MikeM。我试过了,没关系,对我很有帮助,谢谢你的回答!