`
f839903061
  • 浏览: 12231 次
  • 性别: Icon_minigender_1
  • 来自: 河南
最近访客 更多访客>>
社区版块
存档分类
最新评论

动态切换view视图viewflipper组件

阅读更多

个人理解viewflipper,他其实就是切换view视图很方便而已,在做广告的时候有利用的价值,它可以自己来进行图片的每隔多长时间来进行切换

Viewflipper是一个组件,可以在transitions中找到

我照着网页上面的步骤做了如下的操作,是可以实现的

Main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent" >

 

    <ViewFlipper

        android:id="@+id/viewFlipper1"

        android:layout_width="fill_parent"

        android:layout_height="fill_parent"

        android:layout_alignParentLeft="true"

        android:layout_alignParentRight="true"

        android:layout_alignParentTop="true"

       android:inAnimation="@anim/push_in"

        android:outAnimation="@anim/push_out"

        android:persistentDrawingCache="animation" >

 

        <LinearLayout

            android:id="@+id/lin1"

            android:layout_width="match_parent"

            android:layout_height="match_parent"

            android:orientation="vertical" >

 

            <Button

                android:id="@+id/button1"

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:text="next1" />

 

            <TextView

                android:layout_width="fill_parent"

                android:layout_height="wrap_content"

                android:text="@string/content" />

        </LinearLayout>

 

        <LinearLayout

            android:id="@+id/lin2"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:orientation="vertical" >

 

            <Button

                android:id="@+id/button2"

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:text="next2" />

 

            <TextView

                android:layout_width="fill_parent"

                android:layout_height="wrap_content"

                android:text="@string/content" />

        </LinearLayout>

 

        <LinearLayout

            android:id="@+id/lin3"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:orientation="vertical" >

 

            <Button

                android:id="@+id/button3"

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:text="next3" />

 

            <TextView

                android:layout_width="fill_parent"

                android:layout_height="wrap_content"

                android:text="@string/content" />

        </LinearLayout>

    </ViewFlipper>

 

</RelativeLayout>

 

Push_in.xml

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate  

    android:fromXDelta="100%p"   

    android:toXDelta="0"   

    android:duration="500"/>  

    <alpha  

    android:fromAlpha="0.0"   

    android:toAlpha="1.0" 

    android:duration="500" />

 

</set>

Push_out.xml

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate  

    android:fromXDelta="0"   

    android:toXDelta="-100%p"   

    android:duration="500"/>  

    <alpha  

    android:fromAlpha="1.0"   

    android:toAlpha="0.0"   

    android:duration="500" />

 

</set>

 

ViewFlipperActivity

public class ViewFlipperActivity extends Activity implements OnClickListener,OnGestureListener{

 

         private ViewFlipper vf;

         private Button btn1,btn2,btn3;

         private GestureDetector gd;

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        gd=new GestureDetector(this);

        vf=(ViewFlipper)findViewById(R.id.viewFlipper1);

       vf.setFlipInterval(1000);//每个view切换的时间是200微秒

        vf.startFlipping();//开始不停地循环的显示

        btn1=(Button)findViewById(R.id.button1);

        btn2=(Button)findViewById(R.id.button2);

        btn3=(Button)findViewById(R.id.button3);

        btn1.setOnClickListener(this);

        btn2.setOnClickListener(this);

        btn3.setOnClickListener(this);

    }

 

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.main, menu);

        return true;

    }

 

         @Override

         public void onClick(View v) {

                   if (vf.isFlipping()) {

                            vf.stopFlipping();//停止自动切换

                   }

                   switch (v.getId()) {

                   case R.id.button1:

                            vf.showNext();

                            break;

                   case R.id.button2:

                            vf.showNext();

                            break;

                   case R.id.button3:

                            vf.showNext();

                            break;

 

                   default:

                            break;

                   }

         }

 

         //这一步是必不可少的,主要就是要他的返回值的,因为我进过测试如果不用触摸事件的返回值,那么我的手势的onfling()就不会被调用

         @Override

         public boolean onTouchEvent(MotionEvent event) {

                   return gd.onTouchEvent(event);//要的就是这个返回值

         }

         @Override

         public boolean onDown(MotionEvent e) {

                   // TODO Auto-generated method stub

                   return false;

         }

 

         @Override

         public void onShowPress(MotionEvent e) {

                   // TODO Auto-generated method stub

                  

         }

 

         @Override

         public boolean onSingleTapUp(MotionEvent e) {

                   // TODO Auto-generated method stub

                   return false;

         }

 

         @Override

         public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,

                            float distanceY) {

                   // TODO Auto-generated method stub

                   return false;

         }

 

         @Override

         public void onLongPress(MotionEvent e) {

                   // TODO Auto-generated method stub

                  

         }

 

         @Override

         public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,

                            float velocityY) {

                   if (e1.getX()>e2.getX()) {

                            Toast.makeText(ViewFlipperActivity.this, "你是向←滑动的", Toast.LENGTH_SHORT).show();

                   }else {

                            Toast.makeText(ViewFlipperActivity.this, "你是向→滑动的", Toast.LENGTH_SHORT).show();

                           

                   }

                   return false;

         }

}

 

分享到:
评论

相关推荐

    本示例演示以动画方式切换View的组件ViewFlipper

    ViewFlipper是Android SDK提供的一款强大的布局组件,用于在多个视图之间进行平滑的动画切换,这在创建...通过深入理解和实践,你将能够更好地掌握ViewFlipper组件,并将其应用于各种场景,提升应用的趣味性和吸引力。

    ViewFlipper实现滑屏切换View

    本篇文章将详细探讨如何利用ViewFlipper来实现滑屏切换View的功能。 首先,我们需要了解ViewFlipper的基本结构。ViewFlipper继承自ViewGroup,它内部可以包含多个子View。默认情况下,ViewFlipper只会显示第一个子...

    Android通过view复用优化ViewFlipper用法

    在Android开发中,ViewFlipper是一个非常有用的组件,它允许我们轻松地在多个视图之间进行切换,常用于实现轮播图、动画效果等。然而,如果ViewFlipper中的视图数量较多,或者每个视图的复杂度较高,可能会导致性能...

    android 利用ViewFlipper来实现滑动切换

    总结一下,Android中的ViewFlipper组件为开发者提供了一种简单且高效的方式来实现视图之间的滑动切换效果。通过合理设置动画和控制切换时机,我们可以创建出丰富的用户交互体验。在实际项目中,你可以根据需求调整...

    ViewFlipper的三个小例子

    NotifiableViewFlipper是在基础ViewFlipper上的一个扩展,它增加了通知功能,当视图切换时可以发送通知给其他组件。在实际项目中,这可能用于更新UI状态或者其他逻辑处理。 NotifiableViewFlipper的实现通常需要...

    viewFlipper

    `ViewFlipper`是Android平台中的一个视图切换器组件,常用于实现各种动态效果,如广告栏的轮询播放、页面的滑动切换等。它继承自`ViewGroup`,能够管理多个子视图,并在指定的时间间隔内自动或手动进行切换。本篇...

    Android 滑动效果ViewFlipper

    **Android滑动效果ViewFlipper详解** 在Android开发中,我们常常需要实现各种动画效果来提升用户体验,其中滑动切换视图是一种常见...在实际项目中,结合其他组件和动画库,`ViewFlipper`可以满足各种滑动切换的需求。

    android ViewFlipper

    下面我们将深入探讨`ViewFlipper`的工作原理、常用方法以及如何在实际应用中实现视图的动态切换。 `ViewFlipper`是`ViewGroup`的一个子类,它继承了`LinearLayout`的一些特性,可以容纳多个子视图。在默认情况下,`...

    ViewFlipper

    ViewFlipper是Android SDK中的一个布局视图,用于在多个视图之间进行平滑的动画切换,常用于创建轮播图、广告栏等组件。它继承自ViewGroup,因此可以包含多个子视图,并在用户交互或定时器触发时动态地在这些子视图...

    viewflipper

    在Android开发中,`ViewFlipper` 是一个非常实用的组件,主要用于展示一系列视图,并且可以轻松地在这些视图之间切换,实现类似轮播的效果。本篇文章将深入探讨`ViewFlipper`的原理、使用方法以及如何通过监听手势来...

    ViewFlipper使用demo及item点击事件

    ViewFlipper是Android SDK中提供的一种视图切换组件,它允许开发者在多个视图之间进行平滑的动画切换。这个“ViewFlipper使用demo及item点击事件”示例主要展示了如何在实际应用中有效地利用ViewFlipper,并处理其...

    ViewFlipper使用简单实例

    ViewFlipper是Android SDK中的一个视图容器,...总的来说,ViewFlipper是Android开发中一个实用的组件,用于实现简单的视图切换效果。通过熟练掌握其基本用法和结合适当的动画,开发者可以为用户创建流畅的交互体验。

    Android TextSwitcher文本切换器和ViewFlipper使用详解

    在Android开发中,TextSwitcher和ViewFlipper是两种用于实现动态内容切换的视图组件。它们可以帮助开发者创建丰富的用户界面,特别是在展示滚动文本、广告轮播或动态更新信息的场景下。 首先,我们来详细了解**...

    ViewFlipperDemo.zip

    总结一下,"ViewFlipperDemo.zip"应该包含了一个Android应用,该应用演示了如何使用ViewFlipper组件进行视图切换,并可能涉及到了视图复用的概念。通过研究这个示例,开发者能够掌握如何在Android项目中灵活地使用...

    《ViewFlipper使用详解》对应源码

    在Android开发中,`ViewFlipper` 是一个非常实用的视图切换组件,它允许开发者在多个视图之间进行平滑的动画切换。这个压缩包文件`ViewFlipper使用详解`很可能包含了对应的示例代码,帮助开发者理解如何在实际项目中...

    ViewFlipper简单使用

    `ViewFlipper`是一个强大的视图切换组件,通过它我们可以轻松地实现在多个视图间的切换效果,无论是手动切换还是自动滑动。通过结合使用动画效果,可以使应用程序的交互更加生动有趣。在实际开发中,根据需求选择...

Global site tag (gtag.js) - Google Analytics