Android的ViewFlipper与GestureDet-创新互联

 用ViewFlipper与GestureDetector来实现图片的左右滑动效果。

站在用户的角度思考问题,与客户深入沟通,找到镇平网站设计与镇平网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计、网站制作、企业官网、英文网站、手机端网站、网站推广、域名申请网站空间、企业邮箱。业务覆盖镇平地区。

 首先在布局xml中添加ViewFlipper控件:

      

 在Activity中实现GestureDetector的OnGestureListener监听:

mGesture = new GestureDetector(this, this);public boolean onDown(MotionEvent e) { return false; } public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { return false; } public void onLongPress(MotionEvent e) { } public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { return false; } public void onShowPress(MotionEvent e) { } public boolean onSingleTapUp(MotionEvent e) { return false; }

为ViewFilpper加入View,如图片、文字等:

mFilpper = (ViewFlipper) findViewById(R.id.flipper); mFilpper.addView(addImageView(R.drawable.chrysanthemum)); mFilpper.addView(addImageView(R.drawable.desert)); mFilpper.addView(addImageView(R.drawable.ic_launcher)); mFilpper.addView(addImageView(R.drawable.koala)); mFilpper.addView(addImageView(R.drawable.penguins)); mFilpper.addView(addImageView(R.drawable.lighthouse)); mFilpper.addView(addText("你好"));public ImageView addImageView(int resId) { ImageView p_w_picpath = new ImageView(this); p_w_picpath.setImageResource(resId); return p_w_picpath; } private View addText(String string) { TextView textView = new TextView(this); textView.setText(string); return textView; }

在onFling()中编写滑动效果:

@Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { Log.e("onFling", "onFling"); if (e1.getX() - e2.getX() > 120) { mFilpper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.left_in)); mFilpper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.left_out)); mFilpper.showPrevious(); } else if (e2.getX() - e1.getX() > 120) { mFilpper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.rigth_in)); mFilpper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.right_out)); mFilpper.showNext(); } return false; }

其中的left_in.xml如下:

         

left_out.xml:

         

right_in.xml:

         

right_out.xml:

         

最后还要重写onTouchEvent()方法在其中调用GestureDetector的onTouchEvent()方法:

@Override public boolean onTouchEvent(MotionEvent event) { Log.e("onTouchEvent", "onTouchEvent"); return mGesture.onTouchEvent(event); }

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页标题:Android的ViewFlipper与GestureDet-创新互联
分享URL:http://scyanting.com/article/dpjpej.html