我可以在 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 【问题描述】:

我正在制作一个小游戏,并且在每个回合结束时,该回合的摘要被添加到名为 gameSummaryString 中,然后将其设置为屏幕底部的 TextView 的文本在ScrollView

但是,我希望此摘要还显示每轮掷骰子的图像,因此我当前更新 String 变量的方法不起作用,所以我正在考虑使用添加一个 ArrayList ImageView 掷骰子,然后是 TextView 转牌摘要。这可能吗?或者谁能​​想到更好的解决方法?

【问题讨论】:

【参考方案1】:

您可以在TextView 的文本中添加图片。这些被称为Spannables。为此,您将使用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中创建一个sdk

如何在 Android Studio 中创建我自己的“重新格式化代码”样式?

如何在 Android Studio 中创建项目以运行默认 SMS 应用程序

无法在 Android Studio 2.2 中创建发布 apk