问题描述
我正在创建一个像游戏一样的糖果迷,在其中我拍摄了三个不同的图像,将它们放在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 (将#修改为@)