正如我们在https://stackoverflow.com/a/a/10144094/3286489中看到的那样,我们可以通过%1 $ d添加参数。但是我没有知道如何在那里添加图像。
我们可以在https://stackoverflow.com/a/3177667/3286489中使用Spannable添加图像。但是文本中图像的位置需要明确说明。
所以我的问题是,有没有一种方法可以将图像插入文本视图(我可以使用Spannable),使用参数化方法作为https://stackoverflow.com/a/10144094/3286489?
这是我以前做过的:
例如。您的字符串可能是:"这是[img]"。
找到" [img]"的位置,然后用ImageSpan
编辑:正则模式可能是
String message = "This is an [img]";
Pattern MY_PATTERN = Pattern.compile("\[img\]");
Matcher matcher = MY_PATTERN.matcher(message);
// Check all occurrences
while (matcher.find()) {
System.out.print("Start index: " + matcher.start());
System.out.print(" End index: " + matcher.end());
}
-
string.xml
<string name="var">Image %1$s and %2$s</string>
-
mainActivity.java
TextView textView = (TextView) findViewById(R.id.text); String v1 = "%1$s"; String v2 = "%2$s"; String test = getString(R.string.var, v1, v2); Spannable span = Spannable.Factory.getInstance().newSpannable(test); span.setSpan(new ImageSpan(getBaseContext(), android.R.drawable.star_on), test.indexOf(v1), test.indexOf(v1) + v1.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); span.setSpan(new ImageSpan(getBaseContext(), android.R.drawable.star_on), test.indexOf(v2), test.indexOf(v2) + v2.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); textView.setText(span);