同じ画像を表示する画像のグリッドビューがある一種のフリップカードアプリを実行しようとしています。
各画像をクリックすると、グリッドビューのすべてのアイテムごとに異なる別の画像が表示されます。
私がやろうとしているのは、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
}
}