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

Android Grid view moving images between grids

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

如果我单击两个网格,第一个网格的图像应该移动到第二个网格的 location.I that.Just 我想用修改后的图像重新加载网格视图。

请帮助我做到这一点。 我是 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));" 重新加载了 gridview 正在运行!