Android 网格视图在网格之间移动图像



我有网格视图并加载图像。我能够获得网格位置。

如果我单击两个网格,第一个网格的图像应移动到第二个网格的位置。我做到了。只是我想用修改后的图像重新加载网格视图。

请帮助我做到这一点。 我是安卓应用程序开发的初学者,所以给我更多细节,以便更好、更清晰地理解。 提前致谢:)

public class MainActivity extends AppCompatActivity {
GridView androidGridView;
Integer[] imageIDs = {
R.drawable.br, R.drawable.bh, R.drawable.bb, R.drawable.bq, R.drawable.bk, R.drawable.bb, R.drawable.bh, R.drawable.br,
R.drawable.bp, R.drawable.bp, R.drawable.bp, R.drawable.bp, R.drawable.bp, R.drawable.bp, R.drawable.bp, R.drawable.bp,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
R.drawable.wp, R.drawable.wp, R.drawable.wp, R.drawable.wp, R.drawable.wp, R.drawable.wp, R.drawable.wp, R.drawable.wp,
R.drawable.wr, R.drawable.wh, R.drawable.wb, R.drawable.wq, R.drawable.wk, R.drawable.wb, R.drawable.wh, R.drawable.wr
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
androidGridView = (GridView) findViewById(R.id.gridview);
androidGridView.setAdapter(new ImageAdapterGridView(this));
androidGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent,
View v, int position, long id) {
if (Globals.iClickOne == -1) {
Globals.iClickOne = position + 1;

} 
else {
Globals.iClickTwo = position + 1;
if (Globals.iClickOne == Globals.iClickTwo) {
Globals.iClickOne = -1;
Globals.iClickTwo = -1;
} 
else {

imageIDs[Globals.iClickTwo - 1] =    imageIDs[Globals.iClickOne - 1];
imageIDs[Globals.iClickOne - 1] = 0;

Globals.iClickOne = -1;
Globals.iClickTwo = -1;
}
}
}
});
}
public class ImageAdapterGridView extends BaseAdapter {
private Context mContext;
public ImageAdapterGridView(Context c) {
mContext = c;
}
public int getCount() {
return imageIDs.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView mImageView;
if (convertView == null) {
mImageView = new ImageView(mContext);
mImageView.setLayoutParams(new GridView.LayoutParams(50, 60));
mImageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
mImageView.setPadding(1, 1, 1, 1);
} else {
mImageView = (ImageView) convertView;
}
mImageView.setImageResource(imageIDs[position]);
return mImageView;
}

}
}

在上面的代码中

else { 
imageIDs[Globals.iClickTwo - 1] = imageIDs[Globals.iClickOne - 1];
imageIDs[Globals.iClickOne - 1] = 0;
androidGridView.setAdapter(new ImageAdapterGridView(MainActivity.this)); //I added 
Globals.iClickOne = -1;
Globals.iClickTwo = -1;
}

基本上在修改图像数组值后,我使用"androidGridView.setAdapter(new ImageAdapterGridView(MainActivity.this(;"重新加载了网格视图 它正在工作!

最新更新