私がコメントを追加する権限を持っていないので、私は答えとしてこれを掲示しています。 画像の横にはどういう意味がありますか? ユーザーが1つの画像をクリックすると、その画像がその画像と入れ替えられるべきですか? これらの画像をビンにしたコードを表示またはアダプタビューに共有することはできますか?
EDIT:
私も絶対レイアウトが生きていた時期に似たような状況がありました。 次のように私がやったことです:
クラス:
public class PlayScreen extends Activity implements OnTouchListener
private Panel mainPanel; // Panel for out display
boolean firstClick = false;
のOnCreate:
main = new Panel(this);
// Display the panel (calls the ondraw and updates the display)
setContentView(main,new ViewGroup.LayoutParams(screenwidth,screenheight));
// Listen for touchevents on the panel
main.setOnTouchListener(this);
パネル:
class Panel extends View
{
/*
* Init a Panel to draw on and a paint to paint with
*/
Paint mBitmapPaint;
public Panel(Context context)
{
super(context);
mBitmapPaint = new Paint();
}
@Override
protected void onDraw(Canvas canvas)
{
drawImages(canvas);
}
}
drawImages:
private void drawImages(Canvas canvas)
{
for(int i = 0; i<MAX_ROWS; i++){
for(int j=0; j<MAX_COLS; j++)
{
int xpos = j*bmp.getWidth()+j*2;
int ypos = i*bmp.getHeight()+i*2;
bmp = BitmapFactory.decodeResource(mContext.getResources(), items[i][j],opts);
canvas.drawBitmap(bmp,xpos,ypos,mBitmapPaint);
clickzonex.add(xpos);
clickzoney.add(ypos);
clickzonei.add(i);
clickZonej.add(j);
}
}
}
OnTouch:私はちょうど私自身の例を使用し、あなたのコードでそれを混合あなたのロジックを表示しようとしてい
onTouch(View v, MotionEvent event) :
if (event.getAction() == MotionEvent.ACTION_DOWN)
{
// imply logic
x = (int) event.getX();
y = (int) event.getY();
for(int i = 0; i < clickzonex.size();i++)
{
if((x>clickzonex[i]) && (x<(clickzonex[i]+ bmp.getwidth())) && (y>(clickzoney[i])) && (y<(clickzoney[i]+bmp.getHeight())))
{
// we have a click in a zone so we get the card-number in that zone
if(firstClick == false)
{
itemAti=clickzonei[i];
itemAtj = clickzonej[i];
firstclick = false;
}
else
{
FirstItemToSwap = items[clickzonei[i]][clickzonej[i]];
SecondItemToSwap = items[itemAti][itemAtj];
// Now do the swaping using any algo you like.
main.postInvalidate();
firstclick = true;
}
break;
}
}
return true;
}
else
{
return false;
}
。要点は、ondrawメソッドではdrawcanvasを呼び出してtouchするだけでitem [] []をスワップし、Panelクラスのpostinvalidateメソッドを呼び出すことです。
http://stackoverflow.com/questions/8708324/how-to-swap-the-bitmap-images-on-view-in-android –
私はコードの実装与えている上記のリンクを介して行ってください。 –