Как поменять местами растровые изображения на View в android? - PullRequest
2 голосов
/ 03 января 2012

Я работаю с небольшим приложением для отображения изображений пузырьков на экране Android. Я отобразил все изображения пузырьков из каталога ресурсов. Я реализовал код следующим образом в классе представления.

Метод 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]. Я реализовал метод переопределения initialize () следующим образом:

 @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 ()

Пожалуйста, помогите мне любым телом ..............

1 Ответ

0 голосов
/ 05 января 2012

Пожалуйста, определите желаемую функциональность как ..

"Здесь я хотел бы поменять пузырьки, которые выбирают два пузырька одновременно пользователем."

- не полное предложение.

...