我有以下情况:
在布局中,我有水平和垂直对齐的图像视图,如图所示。
首先,应该使用哪种布局? RelativeLayout还是FrameLayout? ListView里面的布局?
此外,我不是为每个imageview编写setOnClickListener,而是如何只编写一个点击监听器来获取点击的图像视图?
答案 0 :(得分:2)
GridView
非常适合这一点。有关GridView的更多信息,请查看here。
关于你的onClickListener问题:没有简单的方法可以做到这一点,但你可以做的是这样的:
有一个包含每个ImageView id的数组,如下所示:
public static final int[] IMAGE_VIEWS = {R.id.imageView1, R.id.imageView2, R.id.imageView3 /*etc*/}; //Make sure to list from the first imageview to the last image view in correct order
定义onClickListener
private View.OnClickListener imageViewListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
for (int i = 0; i < IMAGE_VIEWS.length; i++) {
if (v.getId() == IMAGE_VIEWS[i]) {
doSomethingWithImageViewClick(i); //if ImageView 4 was clicked, variable 'i' will be 3 (because arrays start at index = 0).
}
}
}
}
为所有imageViews设置onClickListeners:
final ImageView view1 = (ImageView) view.findViewById(R.id.imageView1);
view1.setOnClickListener(imageViewListener);
//etc
答案 1 :(得分:0)
GridView 可以达到效果。我想你可以看一下Grid View。
答案 2 :(得分:0)
使用&#39; GridView&#39;在布局和使用&#39; setOnItemClickListener&#39;处理点击事件,
您可以在以下链接中找到更多详细信息 GridView