gpt4 book ai didi

javascript - 如何动态添加 ImageButtons 和 OnClick Listeners 到 300 多个图像?

转载 作者:行者123 更新时间:2023-12-03 11:25:12 25 4
gpt4 key购买 nike

好吧,我真的需要一些帮助,因为我快把自己逼疯了。我有一个消息应用程序,我想添加大约 300 多个表情符号/图片,它们位于 res 文件夹中。它们的文件格式为“thumbs_00001.png、thumbs_00002.png、thumbs_00003.png等...”。

我有一个对话框,打开并显示一个小菜单,供用户选择他们想要的图像:

           final Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.emoticons);
dialog.setTitle("Emoticons");
dialog.show();

我通常会对所有图像按钮进行硬编码,但是 300 多个图像会花费我相当长的时间,而且我认为它可以动态完成(至少我希望如此)。问题是我不知道该怎么做,这就是我在这里问的原因。

我需要弄清楚如何用所有图像填充布局文件(即thumbs_00001.png到thumbs_00080.png,thumbs_00081.png到thumbs_00103.png等),然后还有一个onclick监听器每个。感谢您提供的所有帮助。

最佳答案

使用 GridView 或 ListView。然后创建一个适配器并调用 ListView.setAdapter() 以显示您的图像列表。如果你把你的表情/图片放在 res/drawable 文件夹中,你可以在你的 xml 文件中定义一个数组,看起来像:

<resources>
<array name="emoticons">
<item>@drawable/thumbs_00001</item>
......
</array>
</resources>

在你的java代码中:

int[] emoticonArray = getResources().getIntArray(R.array.emoticons);

或者您可以像这样进行硬编码:

int[] emoticonArray = new int[]{R.drawable.thumbs_00001, R.drawable.thumbs_00002, ...};

然后实现您的适配器:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = new ImageView(mContext);
}
((ImageView)convertView).setImageResource(emotionArray[position]);
return convertView;
}

你需要实现其他方法,如 getCount(),只需谷歌“列表适配器”即可

要在每个项目上设置 OnClickListener,请调用

ListView.setOnItemClickListener()

关于javascript - 如何动态添加 ImageButtons 和 OnClick Listeners 到 300 多个图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26942137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com