2012-01-03 41 views
2

我正在android屏幕上顯示氣泡圖像的小應用程序。我已經顯示來自資源目錄的所有氣泡圖像。我在視圖類中實現了以下代碼。如何交換Android上的View上的位圖圖像?

的onDraw方法:

@Override 
protected void onDraw(Canvas canvas) 
{ 
    super.dispatchDraw(canvas); 


    drawImages(canvas); 

} 

我已經實現drawImages()方法,如下所示:

BitmapFactory.Options opts = new BitmapFactory.Options(); 
private void drawImages(Canvas canvas) 
{ 

     for(int i = 0; i<MAX_ROWS; i++){ 
      for(int j=0; j<MAX_COLS; j++) 
      { 
       bmp = BitmapFactory.decodeResource(mContext.getResources(), items[i][j],opts); 
        canvas.drawBitmap(bmp,j*bmp.getWidth()+j*2,i*bmp.getHeight()+i*2,mBitmapPaint); 
      } 
     } 

} 

通過使用上述方法我已經繪製從項[I] [j]的圖像。 我已經實現初始化()覆蓋方法如下:

@Override 
protected void initialize() 
{ 

    for(int i=0;i<MAX_ROWS;i++) 
     for(int j=0;j<MAX_COLS;j++) 
     { 
      items[i][j] = ImagesStore.ImageList.get(list_Indx); 
      list_Indx++; 
      if(list_Indx == ImagesStore.ImageList.size()) 
       list_Indx = 0; 

    } 
    opts.inSampleSize = 4; 
    width = getWidth(); 
    height = getHeight(); 

} 

通過使用上述代碼我已顯示我的仿真器屏幕上的所有的氣泡的圖像。

這裏我想交換用戶同時選擇兩個氣泡的氣泡。

我已經實現的onTouchEvent用於檢查方法的位圖圖像的項目位置在屏幕上,如下所示:

   int x = 0; 
       int y = 0; 
       int tx = 0, ty = 0; 
      @Override 
public boolean onTouchEvent(MotionEvent event) 
{ 

    tx = (int)event.getX(); 
    ty = (int)event.getY(); 
    int position; 

     x=tx; 
     y=ty; 

     row = (y)/bmp.getHeight(); 
     col = x/bmp.getWidth(); 

     position=row*MAX_COLS+(col+1); 

     Log.v("row", "=====>"+row); 

     Log.v("col", "=====>"+col); 

     Log.v("position", "=====>"+position); 

    count++; 

    if(count%4==0) 
    { 

    Log.v("count", "=====>"+count); 


    //I would like to implement swap code here 



    } 
    return true; 
} 

從上面的代碼如何可以進行交換的onTouchEvent(間改變的圖像)的位圖圖像()實現

請任何機構幫助我..............

回答

0

請確定你的願望的功能..

「這裏我想交換用戶同時選擇兩個氣泡的氣泡。」

不是一個完整的句子。