Android实现中轴旋转特效Android制作别样的图片浏览器

  

Android API演示中有很多非常不错的例子,这些例子的代码都写的很出色,如果大家把API演示中的每个例子研究透了,那么恭喜你已经成为一个真正的Android高手了。这也算是给一些比较迷茫的Android开发者一个指出了一个提升自我能力的方向吧.API演示中的例子众多,今天我们就来模仿其中一个3 d变换的特效,来实现一种别样的图片浏览器。

  

既然是做中轴旋转的特效,那么肯定就要用3 d变到换的功能。在Android中如果想要实现3 d效果一般有两种选择,一是使用opengl ES,二是使用Camera.Open GL ES使用起来太过复杂,一般是用于比较高级的3 d特效或游戏,像比较简单的一些3 d效果,使用相机就足够了。

  

相机中提供了三种旋转方法,分别是rotateX (), rotateY()和rotateZ,调用这三个方法,并传入相应的角度,就可以让视图围绕这三个轴进行旋转,而今天我们要做的中轴旋转效果其实就是让视图围绕Y轴进行旋转。使用相机让视图进行旋转的示意图,如下所示:

  

 Android实现中轴旋转特效Android制作别样的图片浏览器

  

那我们就开始动手吧,首先创建一个Android项目,起名叫做RotatePicBrowserDemo,然后我们准备了几张图片,用于稍后在图片浏览器中进行浏览。

  

而API演示中已经给我们提供了一个非常好用的3 d旋转动画的工具类Rotate3dAnimation,这个工具类就是使用相机来实现的,我们先将这个这个类复制到项目中来,代码如下所示:
  

     /* *   *一个动画旋转视图>   公共类{照片/* *   *图片名称   */私人字符串名称;/* *   *图片对象的资源   */私人int资源;      公共照片(字符串名称,int资源){   this.name=名称;   这一点。资源=资源;   }      公共字符串getName () {   返回名称;   }      公共int getResource () {   返回的资源;   }      }   之前      

这个类中只有两个字段,名字用于显示图片的名称,资源用于表示图片对应的资源。

  

然后创建图片列表的适配器PictureAdapter,用于在视图上可以显示一组图片的名称,代码如下所示:
  

        公开课PictureAdapter延伸ArrayAdapter{      公共PictureAdapter(上下文语境、int textViewResourceId List对象){   超级(上下文、textViewResourceId对象);   }      @Override   公众视线getView (int位置、视图convertView ViewGroup父){   照片照片=getItem(位置);   视图视图;   如果(convertView==null) {   视图=LayoutInflater.from (getContext ()) .inflate (android.R.layout.simple_list_item_1,   零);   其他}{   视图=convertView;   }   TextView text1=(TextView) view.findViewById (android.R.id.text1);   text1.setText (picture.getName ());   返回视图;   }      }   之前      

以上代码都非常简单,没什么需要解释的,接着我们打开或新建activity_main。xml,作为程序的主布局文件,代码如下所示:
  

        & lt; RelativeLayout xmlns: android=" http://schemas.android.com/apk/res/android "   android: id=癅 + id/布局”   android: layout_width=" match_parent "   android: layout_height=" match_parent "   比;      & lt;列表视图   android: id=癅 + id/pic_list_view”   android: layout_width=" match_parent "   android: layout_height=" match_parent "   比;   & lt;/ListView>      & lt; ImageView   android: id=癅 + id/图片”   android: layout_width=" match_parent "   android: layout_height=" match_parent "   android: scaleType=" fitCenter "   android:点击=" true "   android:可见性="了"/比;      & lt;/RelativeLayout>      

可以看的到,我们在activity_main.xml中放入了一个视图,用于显示图片名称列表。然后又加入了一个ImageView,用于展示图片,不过一开始将ImageView设置为不可见,因为稍后要通过中轴旋转的方式让图片显示出来。

  

最后,打开或新建MainActivity作为程序的主活动,代码如下所示:
  

        公开课MainActivity延伸活动{/* *   *根布局   */私人使用相对布局;/* *   *用于展示图片列表的视图   */私人ListView picListView;/* *   *用于展示图片详细的ImageView   */私人ImageView图片;/* *   *图片列表的适配器   */私人PictureAdapter适配器;/* *   *存放所有图片的集合   */私人List

Android实现中轴旋转特效Android制作别样的图片浏览器