Android Gesture手势操作(手势翻页效果)及幻灯片放映
对于Android 的手势不光在软件中会经常用到,比如浏览器中的翻页,滚动页面等等;当然其实在我们开发Android游戏的时候加上了Android手势操作更会让游戏增加一个亮点,比如一般的CAG ,PUZ等类型的游戏选择关卡啦、简单背景的移动啦,都可以使用手势来操作即可,类似前段时间很火的《让人愤怒的小鸟!》咳咳、不好意思说错了,是《愤怒的小鸟》,因为总是听群里啊,朋友啊说小鸟出新版本啦,小鸟出PC硬盘版啦! 唉~你说可让人愤怒,其实说实话,小鸟这个游戏确实不错,我所看到的唯一的亮点是这款游戏的创意!说实话,现在的游戏没有做不出来的只有想不出来的好创意、咳咳。回到话题来,那么下面我们来稍微了解下什么是Android 手势!
所谓手势操作,类似跳舞机、EZdancer~这些利用不同动作和音符让人手舞足蹈一样,那么Android这里的手势只是让我们在游戏和软件中的操作有了更多的花样和玩法,根据玩家接触屏幕时间的长短,在屏幕上滑动的距离,按下抬起的时间等进行了包装,其实就是Android 对触屏处理做了包装和处理。
多时候,利用触摸屏的Fling、Scroll等Gesture(手势)操作来操作会使得应用程序 的用户体验大大提升,比如用Scroll手势在 浏览器中滚屏,用Fling在阅读器中翻页等。在Android 系统中,手势的识别是通过 GestureDetector.OnGestureListener接口来实现的,不过William翻遍了Android的官方文档也没有找到一个相 关的例子,API Demo中的TouchPaint也仅仅是提到了onTouch事件的处理,没有涉及到手势。Android Developer讨论组里也有不少人有和我类似的问题,结合他们提到的方法和我所做的实验,我将给大家简单讲述一下Android中手势识别的实现。
下面我讲解一个实例来说明Gesture手势操作。
private ViewFlipper flipper;
private GestureDetector detector;
detector = new GestureDetector(this);//
detector.setIsLongpressEnabled(true);
flipper = new ViewFlipper(this);
flipper.setBackgroundColor(Color.WHITE);
flipper.addView(addTextView("第一美女", 0));//
flipper.addView(addTextView("第二美女", 1));
flipper.addView(addTextView("第三美女", 2));
flipper.addView(addTextView("第四美女", 3));
flipper.addView(addTextView("第五美女", 4));
flipper.addView(addTextView("第六美女", 5));
flipper.addView(addTextView("第七美女", 6));//
flipper.addView(addTextView("第八美女", 7));
flipper.addView(addTextView("第九美女", 8));
flipper.addView(addTextView("第十美女", 9));
setContentView(flipper);
而addTextView方法的实现细节如下所示:
private View addTextView(String text, int i) {
TextView tv = new TextView(this);
tv.setText(text);
tv.setGravity(1);
LinearLayout output = new LinearLayout(this);
output.setOrientation(LinearLayout.VERTICAL);
Drawable dabg;
switch (i) {
case 0:
dabg = this.getResources().getDrawable(R.drawable.a1);
output.setBackgroundDrawable(dabg);
break;
case 1:
dabg = this.getResources().getDrawable(R.drawable.a2);
output.setBackgroundDrawable(dabg);
break;
case 2:
dabg = this.getResources().getDrawable(R.drawable.a3);
output.setBackgroundDrawable(dabg);
break;
case 3:
dabg = this.getResources().getDrawable(R.drawable.a4);
output.setBackgroundDrawable(dabg);
break;
case 4:
dabg = this.getResources().getDrawable(R.drawable.a5);
output.setBackgroundDrawable(dabg);
break;
case 5:
dabg = this.getResources().getDrawable(R.drawable.a6);
output.setBackgroundDrawable(dabg);
break;
case 6:
dabg = this.getResources().getDrawable(R.drawable.a7);
output.setBackgroundDrawable(dabg);
break;
case 7:
dabg = this.getResources().getDrawable(R.drawable.a8);
output.setBackgroundDrawable(dabg);
break;
case 8:
dabg = this.getResources().getDrawable(R.drawable.a9);
output.setBackgroundDrawable(dabg);
break;
case 9:
dabg = this.getResources().getDrawable(R.drawable.a10);
output.setBackgroundDrawable(dabg);
break;
}
output.addView(tv);
return output;
}
将图片添加到ViewFlipper对象中了。然后要通过手势操作切换图片