最近文章

联系我们

最近文章

当前位置:主页 > 最近文章 >

Android--ViewPager多页面滑动切换以及动画效果

发布时间:2019-01-26 编辑:环亚

ViewPager。它是google SDk中自带的一个附加包的一个类,可以用来实现屏幕间的切换。这个附加包是android-support-v4.jar。

 

根据屏幕的分辨率和图片的宽度计算动画移动的偏移量

viewpager.xml

界面设计很简单,第一行三个头标,第二行动画图片,第三行页卡内容展示。界面设计很简单,第一行三个头标,第二行动画图片,第三行页卡内容展示。

 
    
     

         

         

         
    

     

     
    

我们要展示三个页卡,所以还需要三个页卡内容的界面设计,这里我们只设置了背景颜色,能起到区别作用即可。3个lay.xml,设置颜色不同。

 

     === MyOnClickListener(0 MyOnClickListener(1 MyOnClickListener(2

      MyOnClickListener   index = 0 MyOnClickListener(= 

以上功能就是点击第几个,就展示第几个页卡内容。

     ==  ArrayList<View>=0

我们将三个页卡界面装入其中,默认显示第一个页卡。这里我们还需要实现一个适配器。

      MyPagerAdapter  List<View> MyPagerAdapter(List<View>.mListViews =  destroyItem(View arg0,    Object instantiateItem(View arg0, 0  arg0 ==   

这里我们实现了各页卡的装入和卸载。

      MyOnPageChangeListener  one = offset * 2 + bmpW;
         two = one * 2;
  onPageSelected(=  0 (currIndex == 1=  TranslateAnimation(one, 0, 0, 0  (currIndex == 2=  TranslateAnimation(two, 0, 0, 0 1 (currIndex == 0=  TranslateAnimation(offset, one, 0, 0  (currIndex == 2=  TranslateAnimation(two, one, 0, 0 2 (currIndex == 0=  TranslateAnimation(offset, two, 0, 0  (currIndex == 1=  TranslateAnimation(one, two, 0, 0=);
           animation.setDuration(300  onPageScrolled( arg0,  arg1,   onPageScrollStateChanged(

 ===  screenW =        offset = (screenW / 3 - bmpW) / 2   
        Matrix matrix = 0
        cursor.setImageMatrix(matrix);   
    }

根据屏幕的分辨率和图片的宽度计算动画移动的偏移量。

 ViewPager mPager;
     List<View> listViews; 
     ImageView cursor;
     TextView t1, t2, t3;
      offset = 0;
      currIndex = 0;
      bmpW;
 
        

简短不割                                                                                   

  • TranslateAnimation

TranslateAnimation是移动的动画效果。它有三个构造函数,分别是:

TranslateAnimation(Context context,AttributeSet attrs)

略过

TranslateAnimation( fromXDelta,  toXDelta,  fromYDelta,  toYDelta)

这个是我们最常用的一个构造方法,

float fromXDelta:这个参数表示动画开始的点离当前View X坐标上的差值;

float toXDelta, 这个参数表示动画结束的点离当前View X坐标上的差值;

float fromYDelta, 这个参数表示动画开始的点离当前View Y坐标上的差值;

float toYDelta,这个参数表示动画开始的点离当前View Y坐标上的差值;

如果view在A(x,y)点 那么动画就是从B点(x+fromXDelta, y+fromYDelta)点移动到C 点(x+toXDelta,y+toYDelta)点.

TranslateAnimation ( fromXType,  fromXValue,  toXType,  toXValue,  fromYType,  fromYValue,  toYType,  toYValue)

fromXType:第一个参数是x轴方向的值的参照(Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF,or Animation.RELATIVE_TO_PARENT);

fromXValue:第二个参数是第一个参数类型的起始值;

toXType,toXValue:第三个参数与第四个参数是x轴方向的终点参照与对应值;

后面四个参数就不用解释了。如果全部选择Animation.ABSOLUTE,其实就是第二个构造函数。

以x轴为例介绍参照与对应值的关系:

如果选择参照为Animation.ABSOLUTE,那么对应的值应该是具体的坐标值,比如100到300,指绝对的屏幕像素单位。

如果选择参照为Animation.RELATIVE_TO_SELF或者 Animation.RELATIVE_TO_PARENT指的是相对于自身或父控件,对应值应该理解为相对于自身或者父控件的几倍或百分之多少。多试参数就明白了。

  • getLayoutInflater

android允许我们在对话框中显示指定的xml文件,从而实现自定义对话框的效果。自定义的登录对话框。

XML

 

    

         
        

         
    

    

         
        

         
    

    

         
        

         
    

     

Java

bn.setOnClickListener( 

        builder.setTitle("自定义普通对话框"
        TableLayout loginForm = (TableLayout)getLayoutInflater().inflate( R.layout.login, 

        builder.setPositiveButton("登录" ,   onClick(DialogInterface dialog, 
         builder.setNegativeButton("取消" ,  onClick(DialogInterface dialog, 

作用:

1、对于一个没有被载入或者想要动态载入的界面,都需要使用inflate来载入。

2、对于一个已经载入的Activity,就可以使用实现了这个Activiyt的的findViewById方法来获得其中的界面元素。

方法:

Android里面想要创建一个画面的时候, 初学一般都是新建一个类, 继承Activity基类, 然后在onCreate里面使用setContentView方法来载入一个在xml里定义好的界面.

其实在Activity里面就使用了LayoutInflater来载入界面, 通过方法可以获得一个 LayoutInflater, 也可以通过来获得.然后使用inflate方法来载入layout的xml,

  = MainActivity.== inflater.inflate(R.layout.custom_dialog, ="Hello, Welcome to Mr Wei's blog!"== =

参考:http://blog.sina.com.cn/s/blog_629b701e0100rg4d.html

 

艹奥,还有几个忘记是哪参考来的了,不好意思没有写出来哈。

 

 

转载请注明出处:http://www.cnblogs.com/yydcdut/p/3697233.html

http://www.bkjia.com/Androidjc/762678.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/762678.htmlTechArticleViewPager。它是google SDk中自带的一个附加包的一个类,可以用来实现屏幕间的切换。这个附加包是android-support-v4.jar。 根据屏幕的分辨率和图...

本文源自: AG环亚官网


Copyright © 2005-2016 http://www.aayipanthi.com AG环亚官网_环亚AG娱乐_AG环亚集团_腾讯体育版权所有 AG环亚官网_环亚AG娱乐_AG环亚集团_腾讯体育