【发布时间】:2012-02-01 06:14:20
【问题描述】:
我正在使用用于在 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);
}
}
}
通过使用上述方法,我从 items[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() 处交换(交换图像)位图图像实现
请任何人帮助我........
【问题讨论】:
标签: android bitmap swap touch-event