正如我们在https://stackoverflow.com/a/10144094/3286489中看到的,我们可以通过%1 $ d等在String参数中添加参数。但我不知道如何在那里添加图像。
我们可以使用spannable在https://stackoverflow.com/a/3177667/3286489中看到我们的String中添加图像。但是文本中图像的位置需要明确说明。
所以我的问题是,有没有一种方法可以将我们的图像插入TextView(我可以使用spannable),使用参数化方法https://stackoverflow.com/a/10144094/3286489?
答案 0 :(得分:1)
以下是我以前做过的事情:
例如。你的字符串可能是:“这是[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());
}
答案 1 :(得分:0)
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);