0

同じ画像を表示する画像のグリッドビューがある一種のフリップカードアプリを実行しようとしています。

各画像をクリックすると、グリッドビューのすべてのアイテムごとに異なる別の画像が表示されます。

私がやろうとしているのは、2 つの card_front が表示されている場合、次の項目をクリックすると、最初の 2 枚のカードを裏返して card_back 画像を表示する必要があるということです。つまり、一度に最大 2 枚のカードのみが card_front 画像を表示できます。 .しかし、それを行う方法がわかりません。

誰でも私を助けてくれませんか。よろしくお願いします。

これは、グリッドビューで画像を反転するためのコードです。

   public class FullscreenActivity extends Activity
 implements OnItemClickListener, AnimationListener  

{    ImageView imageView ;
     int pos;
     Animation animation1;
     Animation animation2;
     int[] clicked = {0,0,0,0,0,0,0,0,0,0,0,0};



      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);       
            setContentView(R.layout.activity_fullscreen);
            animation1 = AnimationUtils.loadAnimation(this, R.anim.to_middle);
            animation1.setAnimationListener(this);

            animation2 = AnimationUtils.loadAnimation(this, R.anim.from_middle);
            animation2.setAnimationListener(this);

        GridView gridview = (GridView) findViewById(R.id.gridview);
        gridview.setAdapter(new ImageAdapter(this));            

        gridview.setOnItemClickListener(new OnItemClickListener()
        {
            public void onItemClick(AdapterView<?> parent, View v, int position, long id)
             {   
                  pos=position;
                  imageView = ((ViewHolder) v.getTag()).img;

              (imageView).clearAnimation();
              (imageView).setAnimation(animation1);
              (imageView).startAnimation(animation1);

             }

        }); 
    }


    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
    {
        // TODO Auto-generated method stub

    }


    @Override
    public void onAnimationEnd(Animation arg0) {

        if (arg0==animation1) {

                if(clicked[pos]==0)
        {
                 imageView.setImageResource(ImageAdapter.mThumbSelected[pos]);

                 clicked[pos]=1;

              } else if(clicked[pos]==1) {
                  clicked[pos]=0; 

                  imageView.setImageResource(R.drawable.card_back);
             }

   imageView.clearAnimation();
   imageView.setAnimation(animation2);
   imageView.startAnimation(animation2);
        } 

    }


    @Override
    public void onAnimationRepeat(Animation animation) {
        // TODO Auto-generated method stub

    }


    @Override
    public void onAnimationStart(Animation animation) {
        // TODO Auto-generated method stub

    }



}
4

1 に答える 1