Android基于GridView实现的翻牌游戏效果

本文介绍了如何使用Android的GridView实现翻牌游戏的动画效果。GridView设置了15个Item,点击时图片放大并翻转显示文字,同时其他Item自动翻转。文章详细讲解了Adapter、旋转动画、ImageLoader初始化以及MainActivity的关键代码实现。
摘要由CSDN通过智能技术生成

  好久没有写博客了,上一篇博文距现在都有七个多月了,实在是惭愧。但是这段时间仍然是在忙于项目或是自我充电。这几天实现了一个基于GridView的翻牌动画效果,这里就将其整理出来同各位分享。

  一、整体介绍 

  GridView设置15个Item(5*3),刚好满屏显示(没有ScrollBar),没有点击某个Item前可以使用摇一摇功能对GridView中的图片进行切换,点击某个Item时对应的图片放大,然后实现“翻牌”效果,并将该Item中显示的图片切换为对应的文字。随后所有其他的Item也自动实现翻牌效果。

  (1)目录结构

  

  (2)效果图

    

  二、详细介绍

  按上面的目录结构从上致下

  1、GridAdapter 继承至 BaseAdapter

    重点代码:

    (1)自定义的一个Item touch事件监听接口

1  public interface  OnItemTouchedListener {
2         public boolean onItemTouch (View v, MotionEvent event, int position);
3  }

    (2)设置OnItemTouchedListener

1  public void setOnItemTouchedListener(OnItemTouchedListener onItemTouchedListener) {
2         this.listener = onItemTouchedListener;
3  }

    (3)getView()函数中动态设置 Item的高、宽加载网络图片为每个Item设置OnTouchListener

复制代码
 1 @Override
 2     public View getView(final int position, View convertView, ViewGroup parent) {
 3         LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 4         convertView = inflater.inflate(R.layout.grid_item, parent, false);
 5 
 6         LayoutParams layoutParams = convertView.getLayoutParams();
 7         layoutParams.width = viewWidth; 8 layoutParams.height = viewHeight; 9  convertView.setLayoutParams(layoutParams); 10 ImageView imageView = (ImageView) convertView.findViewById(R.id.grid_image); 11 12 DisplayImageOptions options = new DisplayImageOptions.Builder()// 13 .cacheInMemory(true)// 14 .cacheOnDisc(true)// 15 .bitmapConfig(Config.RGB_565)// 16  .build(); 17  ImageLoader.getInstance().displayImage(urlArray.get(position), 18  imageView, options); 19 convertView.setOnTouchListener(new OnTouchListener() { 20 21  @Override 22 public boolean onTouch(View v, MotionEvent event) { 23 24 return listener.onItemTouch(v, event, position); 25  } 26  }); 27 28 return convertView; 29 }
复制代码

   2、RotateAnimation

  参考于github上jianghejie的3DNumberRotate项目中的NumberRotate3DAnimation类,基于Camera实现数字3D翻转动画。

  3、自定义的Application类

  项目中使用了universal-image-loader加载网络图片,在这里对ImageLoader进行初始化:

复制代码
 1 private void initImageLoader() {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值