整个项目的
package com.example.vIEwflipper;import androID.R.integer;import androID.app.Activity;import androID.os.Bundle;import androID.util.Log;import androID.vIEw.GestureDetector.OnDoubleTapListener;import androID.vIEw.Menu;import androID.vIEw.MenuItem;import androID.vIEw.MotionEvent;import androID.vIEw.Window;import androID.Widget.ImageVIEw;import androID.Widget.VIEwFlipper;public class MainActivity extends Activity{private VIEwFlipper flipper;private float startX;private int resID[] = { R.drawable.ic_girl2,R.drawable.ic_girl3,R.drawable.ic_girl4,R.drawable.ic_girl5,};@OverrIDeprotected voID onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestwindowFeature(Window.FEATURE_NO_Title);setContentVIEw(R.layout.main);flipper = (VIEwFlipper) findVIEwByID(R.ID.vIEwflipper);// 动态导入的方式为VIEwFlipper加入子VIEWfor (int i = 0; i < resID.length; i++) {flipper.addVIEw(getimageVIEw(resID[i]));}// overrIDePendingTransition(R.anim.left_in,R.anim.left_out);// flipper.setFlipInterval(3000); flipper.startFlipPing();// 这样的会实现类似幻灯片的效果// 为vIEwFlipper去添加动画效果// flipper.setInAnimation(this,R.anim.left_in);// flipper.setoutAnimation(this,R.anim.left_out);// 设定VIEwFlipper的时间间隔// flipper.setFlipInterval(3000);// 开始播放// flipper.startFlipPing();}private ImageVIEw getimageVIEw(int resID) {ImageVIEw imageVIEw = new ImageVIEw(this);// imageVIEw.setimageResource(resID);宽高完全取决于图片大小imageVIEw.setBackgroundResource(resID);// 这样就可以自适应return imageVIEw;}@OverrIDepublic boolean ontouchEvent(MotionEvent event) {// Todo auto-generated method stubswitch (event.getAction()) {// 手指落下case MotionEvent.ACTION_DOWN:// 刚开始手指落下的坐标,获得横向坐标的x{ startX = event.getX();break;}// 手指移动case MotionEvent.ACTION_MOVE:{Log.i("Main","调动次数");break;}// 手指离开case MotionEvent.ACTION_UP: {if (event.getX() - startX > 100) { // 向右滑动flipper.setInAnimation(this,R.anim.left_in);flipper.setoutAnimation(this,R.anim.left_out);flipper.showPrevIoUs();// 显示前一页;}if (startX - event.getX() > 100) {// 向左滑动flipper.setInAnimation(this,R.anim.right_in);flipper.setoutAnimation(this,R.anim.right_out);flipper.showNext();// 显示后一页;}break;}}return super.ontouchEvent(event);}} <?xml version="1.0" enCoding="utf-8"?><set xmlns:androID="http://schemas.androID.com/apk/res/androID" ><translateandroID:duration="2000"androID:fromXDelta="-100%p"androID:toXDelta="0" /></set> <?xml version="1.0" enCoding="utf-8"?><set xmlns:androID="http://schemas.androID.com/apk/res/androID" ><translateandroID:duration="2000"androID:fromXDelta="0"androID:toXDelta="100%p" /></set> <?xml version="1.0" enCoding="utf-8"?><set xmlns:androID="http://schemas.androID.com/apk/res/androID" ><translateandroID:duration="2000"androID:fromXDelta="100%p"androID:toXDelta="0" /></set> <?xml version="1.0" enCoding="utf-8"?><set xmlns:androID="http://schemas.androID.com/apk/res/androID" ><translateandroID:duration="2000"androID:fromXDelta="0"androID:toXDelta="-100%p" /></set> <?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"androID:layout_wIDth="match_parent"androID:layout_height="match_parent"androID:orIEntation="vertical" ><VIEwFlipperandroID:ID="@+ID/vIEwflipper"androID:layout_wIDth="match_parent"androID:layout_height="match_parent"></VIEwFlipper></linearLayout>
感悟:VIEwFlipper貌似可以做成新下载的应用 ,用户第一次进入的大概描述。。最后再做个button,进入应用。
1.先在main.xml文件中添加vIEwflipper,然后在MainActivity中实例化,setContext布局要改掉,通过动态导入数据源的方法。
通过一个resID.length的for循环导入。 新建一个ImageVIEw 对象的ImageVIEw getimageVIEw(int resID)函数
里面
// imageVIEw.setimageResource(resID);宽高完全取决于图片大小imageVIEw.setBackgroundResource(resID);// 这样就可以自适应
要用第二个好点。 然后返回一个对象。
在res/anim下分别建立4个xml 文件, left_in,left_out,right_in,right_out;
例:left_in 即如偏从左边进来
<translateandroID:duration="2000" //持续时间为2sandroID:fromXDelta="-100%p"//androID:toXDelta="0" />
这里有2种实现方式
(1)overrIDePendingTransition(R.anim.left_in,R.anim.left_out);
//设定时间间隔 flipper.setFlipInterval(3000);flipper.startFlipPing();//这样的会实现类似幻灯片的效果
(2)flipper.setInAnimation(this,R.anim.left_in);
flipper.setoutAnimation(this,R.anim.left_out);// 设定VIEwFlipper的时间间隔flipper.setFlipInterval(3000);// 开始播放// flipper.startFlipPing();
然后加载一个boolean ontouchEvent(MotionEvent event)
设置一个全局变量private float startX;//手指落下时的位置
通过event.getAction()获取
case MotionEvent.ACTION_DOWN://手指落下时的{startX = event.getX(); }-->获得刚开始的横坐标case MotionEvent.ACTION_UP://手指离开{通过判断event.getX()-startX>100判断向右滑动,然后实现动画,并显示前一面startX-event.getX()<100判断向左滑动,然后实现动画,并显示后一面}//手势 *** 作要在up中,若在down中会发生图层折叠的问题。 通过Log.i("Main","次数");
可以看出手指稍微一动就会出现很多。
case MotionEvent.ACTION_MOVE://手指滑动时
以上所述是小编给大家介绍的AndroID中利用vIEwflipper动画切换屏幕效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程小技巧网站的支持!
总结以上是内存溢出为你收集整理的Android中利用viewflipper动画切换屏幕效果全部内容,希望文章能够帮你解决Android中利用viewflipper动画切换屏幕效果所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)