如何解决如何获得gridview的行和列位置?
我正在创建一个像游戏一样的糖果迷,在其中我拍摄了三个不同的图像,将它们放在gridview中,然后在对应的行(或列)中滑动位置,如果它们匹配,则会增加得分,然后被替换。我设法将图像显示在屏幕上(尽管不是根据布局进行统一设置):
在我的imageAdapter.java类中,由于数组是一维的,所以尝试获取数组的列或行时遇到了一个问题:
public class ImageAdapter extends BaseAdapter {
private Context mContext;
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return mThumbIds.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
// create a new ImageView for each item referenced by the Adapter
public View getView(int position,View convertView,ViewGroup parent) {
Arrays.fill(mThumbIds,differentShapes());
ImageView imageView;
if (convertView == null) { // if it's not recycled,initialize some attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85,85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8,8,8);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(mThumbIds[position]);
return imageView;
}
private Random rand = new Random();
private int randomSizes = rand.nextInt(4) + 1;
private int differentShapes()
{
Random rand = new Random();
int randInt = rand.nextInt(3);
switch(randInt)
{
case 0: return R.drawable.circle;
case 1: return R.drawable.square;
case 2: return R.drawable.triangle;
default: return 0;
}
}
private Integer[] mThumbIds = new Integer[18 * randomSizes];
}
我当时正在考虑将我需要的内容转换为二维数组,但是我仍然不得不考虑在getView()方法中分配适当的行和列来分配位置:
public class ImageAdapter extends BaseAdapter {
...
// create a new ImageView for each item referenced by the Adapter
public View getView(int position,ViewGroup parent) {
for(Integer[] ele : mThumbIds) {
Arrays.fill(ele,differentShapes());
}
ImageView imageView;
if (convertView == null) { // if it's not recycled,8);
} else {
imageView = (ImageView) convertView;
}
//Don't know what to put in each dimension
imageView.setImageResource(mThumbIds[???][???]);
return imageView;
}
...
private Integer[][] mThumbIds = new Integer[9 * randomSizes][6 * randomSizes];
}
所以,我的问题是如何获得正确的尺寸以将位置放置在getView()中?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。