Android ViewPager 动画效果

  1. package com.example.jaazy;
  2. import java.util.ArrayList;
  3. import android.support.v4.view.PagerAdapter;
  4. import android.view.View;
  5. import android.view.View.OnClickListener;
  6. import android.view.ViewGroup;
  7. /**
  8. * Create by LanYan on 2014.04.24
  9. * This is a adapter
  10. */
  11. public class ViewPagerAdapterOnClick extends PagerAdapter {
  12. private ArrayList<View> views;
  13. private ViewPageOnClick callback;
  14. private JazzyViewPager pager;
  15. public ViewPagerAdapterOnClick(JazzyViewPager pager,ArrayList<View> views,ViewPageOnClick callback) {
  16. this.setViews(views);
  17. this.callback=callback;
  18. this.pager=pager;
  19. }
  20. public void setViews(ArrayList<View> views) {
  21. if (views != null)
  22. this.views = views;
  23. else
  24. this.views = new ArrayList<View>();
  25. }
  26. public void changeItem(ArrayList<View> views) {
  27. this.setViews(views);
  28. notifyDataSetChanged();
  29. }
  30. @Override
  31. public int getItemPosition(Object object) {
  32. // TODO Auto-generated method stub
  33. return POSITION_NONE;
  34. }
  35. @Override
  36. public int getCount() {
  37. // TODO Auto-generated method stub
  38. return views.size();
  39. }
  40. @Override
  41. public boolean isViewFromObject(View arg0, Object arg1) {
  42. // TODO Auto-generated method stub
  43. return arg0 == arg1;
  44. }
  45. @Override
  46. public void destroyItem(ViewGroup container, int position, Object object) {
  47. View v = views.get(position);
  48. container.removeView(v);
  49. }
  50. public void removeUpdate(ViewGroup container){
  51. container.removeAllViews();
  52. }
  53. @Override
  54. public Object instantiateItem(ViewGroup container, final int position) {
  55. View v = views.get(position);
  56. v.setOnClickListener(new OnClickListener() {
  57. public void onClick(View v) {
  58. // TODO Auto-generated method stub
  59. callback.callbackOnClickItem(position);
  60. }
  61. });
  62. container.addView(v);
  63. pager.setObjectForPosition(v, position);
  64. return v;
  65. }
  66. public interface ViewPageOnClick{
  67. void callbackOnClickItem(int position);
  68. }
  69. }

activity:

[java] view plaincopy

  1. import java.util.ArrayList;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.view.ViewGroup.LayoutParams;
  6. import android.widget.ImageView;
  7. import android.widget.Toast;
  8. import com.example.jaazy.JazzyViewPager.TransitionEffect;
  9. import com.example.jaazy.ViewPagerAdapterOnClick.ViewPageOnClick;
  10. public class MainActivity extends Activity implements ViewPageOnClick{
  11. private JazzyViewPager pager;
  12. private ViewPagerAdapterOnClick adapter;
  13. @Override
  14. protected void onCreate(Bundle savedInstanceState) {
  15. super.onCreate(savedInstanceState);
  16. setContentView(R.layout.activity_main);
  17. setupJazziness(TransitionEffect.Stack);
  18. }
  19. private void setupJazziness(TransitionEffect stack) {
  20. // TODO Auto-generated method stub
  21. pager=(JazzyViewPager)findViewById(R.id.jazzy_pager);
  22. adapter=new ViewPagerAdapterOnClick(pager, getViews(),this);
  23. pager.setAdapter(adapter);
  24. pager.setPageMargin(5);
  25. //压栈方式
  26. pager.setTransitionEffect(TransitionEffect.Stack);
  27. //立体内部进出
  28. //pager.setTransitionEffect(TransitionEffect.CubeIn);
  29. //立体凸出
  30. //pager.setTransitionEffect(TransitionEffect.CubeOut);
  31. //左右挤压
  32. //pager.setTransitionEffect(TransitionEffect.Accordion);
  33. //水平翻页
  34. //pager.setTransitionEffect(TransitionEffect.FlipHorizontal);
  35. //垂直翻页
  36. //pager.setTransitionEffect(TransitionEffect.FlipVertical);
  37. //上扇形摆入
  38. //pager.setTransitionEffect(TransitionEffect.RotateDown);
  39. //下扇形摆入
  40. //pager.setTransitionEffect(TransitionEffect.RotateUp);
  41. //标准
  42. //pager.setTransitionEffect(TransitionEffect.Standard);
  43. //选项卡(卡片形式)
  44. ///pager.setTransitionEffect(TransitionEffect.Tablet);
  45. //zoom in
  46. //pager.setTransitionEffect(TransitionEffect.ZoomIn);
  47. //zoom out
  48. //pager.setTransitionEffect(TransitionEffect.ZoomOut);
  49. }
  50. private ArrayList<View> getViews() {
  51. // TODO Auto-generated method stub
  52. ArrayList<View> list=new ArrayList<View>();
  53. ImageView i=new ImageView(this);
  54. LayoutParams params=new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
  55. i.setLayoutParams(params);
  56. i.setBackgroundResource(R.drawable.a);
  57. ImageView i2=new ImageView(this);
  58. i2.setLayoutParams(params);
  59. i2.setBackgroundResource(R.drawable.b);
  60. ImageView i3=new ImageView(this);
  61. i3.setLayoutParams(params);
  62. i3.setBackgroundResource(R.drawable.c);
  63. ImageView i4=new ImageView(this);
  64. i4.setLayoutParams(params);
  65. i4.setBackgroundResource(R.drawable.e);
  66. list.add(i);
  67. list.add(i2);
  68. list.add(i3);
  69. list.add(i4);
  70. return list;
  71. }
  72. @Override
  73. public void callbackOnClickItem(int position) {
  74. // TODO Auto-generated method stub
  75. Toast.makeText(this, "position:"+position, 1000).show();
  76. }
  77. }

JazzyViewPager自带动画枚举11中,如需其他动画,自己添加即可

时间: 2024-10-24 20:55:44

Android ViewPager 动画效果的相关文章

android:ViewPager动画总结

设置动画的方案: 我们可以使用ViewPager的setPageTransformer方法,为ViewPager设置动画.以下是几种常见动画的演示及效果: 1.CubeInTransformer 2.CubeOutTransformer 2 3.FlipHorizontalTransformer 4.RotateUpTransformer 5.ZoomOutSlideTransformer 6.TabletTransformer 更多ViewPager的动画Demo请参见源代码: https:/

android anim 动画效果(转)

动画效果编程基础--AnimationAndroid      动画类型      Android的animation由四种类型组成      XML中    alpha    渐变透明度动画效果    scale    渐变尺寸伸缩动画效果    translate    画面转换位置移动动画效果    rotate    画面转移旋转动画效果        JavaCode中    AlphaAnimation    渐变透明度动画效果    ScaleAnimation    渐变尺寸伸缩

写一个android带动画效果的TabHost(类似微博客户端的切换效果)

先上图: 这个Layout是: <?xml version="1.0" encoding="UTF-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" andro

Android 使用动画效果后的控件位置处理 类似系统通知栏下拉动画

Android的动画的使用,请参考.Android的动画,在设计方面,我有点不太理解,觉得这样搞很怪,因为在控件动画后,即使设置了停留在动画结束时的位置,我们也确实看到了控件停在那个位置,但其实该控件的真实位置还是在原来动画前的那里.举个例子,如果有个Button,你给它设置了动画,让它移动到其他位置,当移动完成后,你会发现,点击Button没有任何效果,而在Button原来的位置,就是动画前的位置点击,明明没有任何控件,却看到了点击Button的效果.不知道Google为什么要这样设计.解决思

android anim 动画效果

动画效果编程基础--AnimationAndroid       动画类型       Android的animation由四种类型组成       XML中    alpha    渐变透明度动画效果    scale    渐变尺寸伸缩动画效果    translate    画面转换位置移动动画效果    rotate    画面转移旋转动画效果          JavaCode中    AlphaAnimation    渐变透明度动画效果    ScaleAnimation    渐

Android View动画效果—透明效果,旋转效果

一:动画效果 方法一:动画效果用AlphaAnimation类,直接添加 AlphaAnimation aa = new AlphaAnimation(0,1); //设置透明度 aa.setDuration(2000); //设置时间 view.startAnimation(aa); 方法二:应用xml方式 建立一个xml为aa.xml文件 <?xml version="1.0" encoding="utf-8"?> <alpha xmlns:a

【Android的从零单排开发日记】之入门篇(十六)——Android的动画效果

      什么是动画,动画的本质是通过连续不断地显示若干图像来产生“动”起来的效果.比如说一个移动的动画,就是在一定的时间段内,以恰当的速率(起码要12帧/秒以上,才会让人产生动起来的错觉)每隔若干时间在屏幕上更新一次位置.游戏中的动画效果也是由此而来.同样还有其他属性变更所引起的动画效果,从数学的角度来看,包括:(1)平移(2)旋转(3)缩放(4)透明度.当然这些属性可以组合起来使用,来达到更绚丽的画面.但是不论什么样的组合方式,我们都可以统一用Matirx运算来实现,从技术实现的角度来讲,

Android带动画效果的弹窗

在网络加载数据的时候通常需要很多时间,这个时候程序里面经常需要写一个提示正在加载数据的弹窗,这篇文章用两种方式实现带动画效果的Dialog:帧动画实现和GIF动态图实现,它们都能达到动画的效果 第一种.帧动画实现 自定义一个Dialog,先看一下布局文件dialog_animation.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width=

Android插屏动画效果

公司研发SDK,须要类似有米插屏的动画效果,研究了下,写了一个DEMO,凝视非常具体了. <span style="font-size:24px;">package com.example.animationactivity; import android.animation.Animator; import android.animation.AnimatorSet; import android.animation.ObjectAnimato import androi