我可以在 Android Studio 中创建一个包含 TextViews 和 ImageViews 的 ArrayList 吗?
Posted
技术标签:
【中文标题】我可以在 Android Studio 中创建一个包含 TextViews 和 ImageViews 的 ArrayList 吗?【英文标题】:Can I create an ArrayList that contains TextViews and ImageViews in Android Studio? 【发布时间】:2017-02-11 16:25:07 【问题描述】:我正在制作一个小游戏,并且在每个回合结束时,该回合的摘要被添加到名为 gameSummary
的 String
中,然后将其设置为屏幕底部的 TextView 的文本在ScrollView
。
但是,我希望此摘要还显示每轮掷骰子的图像,因此我当前更新 String
变量的方法不起作用,所以我正在考虑使用添加一个 ArrayList ImageView
掷骰子,然后是 TextView
转牌摘要。这可能吗?或者谁能想到更好的解决方法?
【问题讨论】:
【参考方案1】:您可以在TextView
的文本中添加图片。这些被称为Spannable
s。为此,您将使用SpannableStringBuilder 和ImageSpan。示例:
SpannableStringBuilder builder = new SpannableStringBuilder("initial text");
builder.append("\n");
Bitmap image = BitmapFactory.decodeResource(context.getResources(), drawableId);
int imageIndex = builder.length();
builder.setSpan(new ImageSpan(context, image, ImageSpan.ALIGN_BASELINE),
index , index+1, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
textView.setText(builder);
【讨论】:
【参考方案2】:我将创建一个包含您的图像和文本的新类,然后创建该类的 ArrayList。然后我可能会使用 ListView 来显示它们。
(未测试)
public class TurnSummary
private String turnTextSummary;
private Bitmap turnDiceImage;
public TurnSummary(String summary, Bitmap image)
this.turnTextSummary = summary;
this.turnDiceImage = image;
// getters & setters
然后创建一个列表将是:
List<TurnSummary> list = new ArrayList<>();
list.add(new TurnSummary(summary, diceImage));
【讨论】:
以上是关于我可以在 Android Studio 中创建一个包含 TextViews 和 ImageViews 的 ArrayList 吗?的主要内容,如果未能解决你的问题,请参考以下文章
我无法在Visual Studio 2017中创建android密钥库
无法在Android Studio中创建Android虚拟设备[关闭]
如何在 Android Studio 中创建我自己的“重新格式化代码”样式?