如何动态地将图像按钮和 OnClick 侦听器添加到 300+ 图像
How to dynamically add ImageButtons and OnClick Listeners to 300+ images?
好吧,我真的需要一些帮助,因为我快把自己逼疯了。我有一个消息传递应用程序,我想为它添加大约 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();
我通常会对所有 ImageButton 进行硬编码,但是 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()
使用GridView
或ListView
,它们具有adapter
,因此可以轻松处理onClick
,并且它们旨在显示大量数据。
相关文章:
- 从Web服务器下载图像按钮单击使用JavaScript
- 一个具有两个图像按钮的表单在只能按下一个按钮的情况下发送两个按钮值
- Javascript:图像按钮
- 如何通过单击图像按钮打开图像
- 安卓应用程序的“共享图像”按钮
- 当有人单击图像/按钮时打开弹出窗口
- 如何创建激活jQuery/js函数的图像按钮
- AngularJs 单击以切换表格中的图像按钮 src
- 用不同的图像/按钮替换图像 - javascript
- 悬停时无法显示图像按钮的工具提示项
- 带有下载图像按钮的灯箱
- 在少数几个选择上制作图像按钮
- 从 cs 页面更改图像按钮集的光标
- 提交图像按钮的焦点在IE 8中未突出显示
- 如何动态地将图像按钮和 OnClick 侦听器添加到 300+ 图像
- 重写:导航链接图像按钮效果
- 按百分比调整大小的图像按钮
- 具有多个覆盖和图像按钮的Flowplayer
- 将图像按钮转换为提交按钮
- 如何在javascript中使用html将图像按钮添加到链接中