你的自定义视图类应该有一个构造函数,它接受三个String
参数,一个是图像的路径,一个是要在图像之前显示的文本,一个是要在之后显示的文本。
class YourView {
public YourView(String imgPath, String beforeImg, String afterImg){
//add TextView for text before image
//add ImageView for image
//add TextView for text after image
}
}
如果您的图像将始终包含在 a{[ ]}
中,则正则表达式(.+)\\{\\[(.+)\\]\\}(.+)
将捕获{[
第 0 组中的所有内容,第 1 组中的和之间{[
的所有内容}]
(即图像路径),以及}]
第 2 组中的所有内容。
如果您使用 Java Matcher
,则可以实现所需的结果,例如:
String pre, path, post;
while (matcher.find()){
pre = matcher.group(0);
path = matcher.group(1);
post = matcher.group(2);
YourView view = new YourView(path, pre, post);
//add view
}
请注意,如果图像位于文本的末尾或开头,您只需在此处将空字符串作为第三个/第一个参数传递,这将导致创建空的 TextView,这应该是无害的(或者您可以做一个检查,而不是为空字符串创建一个)。
也就是说,还要注意上面的代码未经测试(但应该给你一个大致的想法),并且我是一个在 Android 方面经验很少的 Java 程序员 - 所以如果有一个 Android 特定的原因,请告诉我这不起作用