好吧,我真的需要一些帮助,因为我让自己疯了。我有一个消息传递应用程序,我想添加大约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监听器每。感谢您的帮助。
答案 0 :(得分:1)
使用GridView或ListView。然后创建一个Adapter并调用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(),只需google&#39; list adapter&#39;
要在每个项目上设置OnClickListener,请调用
ListView.setOnItemClickListener()
答案 1 :(得分:0)
使用GridView
或ListView
,他们有adapter
,因此他们可以轻松处理onClick
,并且它们的目的是显示大量数据。< / p>