我正在拆分圖像並放置在網格視圖中。在網格視圖中點擊兩個圖像時,我想交換他們的位置。我能夠改變他們的立場,但形象沒有改變。我已經使用位圖數組分割圖像並將它們放置在網格視圖中。那麼,如何通過點擊兩張圖像在網格視圖中更改圖像?我應該如何交換圖像?任何人如何幫助我?如何更改網格視圖中的位置在android中的位置變化?
public class Imagepieces extends Activity {
ArrayList<Bitmap> breakedimages,duplicate;
GridView g;
int i=0,temp,temp2,rpos;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image);
breakedimages = getIntent().getParcelableArrayListExtra("breaked image");
duplicate = new ArrayList<Bitmap>(breakedimages);
Collections.shuffle(duplicate);
g = (GridView) findViewById(R.id.gridView1);
g.setAdapter(new CutAdapter(this, breakedimages));
g.setNumColumns((int) Math.sqrt(breakedimages.size()));
g.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
//=================================================
{
}
});
}
class CutAdapter extends BaseAdapter {
int iwidth, iheight;
Context context;
public CutAdapter(Imagepieces ipieces, ArrayList<Bitmap> breakedimages) {
// TODO Auto-generated constructor stub
iwidth = breakedimages.get(0).getWidth();
iheight = breakedimages.get(0).getHeight();
context = ipieces;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return duplicate.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return duplicate.get(arg0);
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
ImageView i=new ImageView(context);
i.setLayoutParams(new GridView.LayoutParams(iwidth +5,iheight +5));
i.setPadding(0, 0, 0, 0);
i.setImageBitmap(duplicate.get(arg0));
return i;
}
}
}
如何在網格視圖中交換圖像?當我點擊第一次點擊網格視圖時,我必須得到位置,然後點擊第二個位置。然後我在兩個位置上的圖像,並且在改變了所有圖像之後,如果兩者相等,我想與已經分割的圖像進行比較。然後我想在遊戲結束時顯示敬酒。任何人都可以幫我
我回答了類似的問題。請檢查此http://stackoverflow.com/a/12669463/1443981 – Aswin