看图先:

        

页面中填充内容是随机关键词飞入和飞出动画效果,随后会更新,现在请先无视吧

---2015-02-27---

两年后终于更新了,网上都能搜到的,哎 无奈太懒http://blog.csdn.net/onlyonecoder/article/details/43965695

-----------

首先是 导入jar包   下载地址: android-support-v4.jar

布局文件里添加viewPager布局

[html] view plaincopy
  1. <android.support.v4.view.ViewPager
  2. android:id="@+id/search_viewpager"
  3. android:layout_width="wrap_content"
  4. android:layout_height="wrap_content"
  5. android:layout_gravity="center" >
  6. </android.support.v4.view.ViewPager>

再创建两个item布局用于填充在ViewPager里


然后就是Activity了,主要写了左右滑动切换页面,还有一个小图片随页面切换 位移的动画效果

[java] view plaincopy
  1. public class SearchAllcityActivity extends Activity {
  2. private KeywordsFlow keywordsFlow;
  3. private ViewPager viewPager;
  4. private ImageView imageView;
  5. private List<View> lists = new ArrayList<View>();
  6. private ViewPagerAdapter adapter;
  7. private Bitmap cursor;
  8. private int offSet;
  9. private int currentItem;
  10. private Matrix matrix = new Matrix();
  11. private int bmWidth;
  12. private Animation animation;
  13. private Button shuaxin_sq, shuaxin_fl;
  14. public void onCreate(Bundle savedInstanceState) {
  15. super.onCreate(savedInstanceState);
  16. setContentView(R.layout.search_allcity);
  17. // 随页面滑动图片
  18. imageView = (ImageView) findViewById(R.id.viewpaget_img);
  19. // 热门商圈和热门分类 页面添加到viewPager集合
  20. lists.add(getLayoutInflater().inflate(R.layout.search_hot_shangqu, null));
  21. lists.add(getLayoutInflater().inflate(R.layout.search_hot_fenlei, null));
  22. // 初始化滑动图片位置
  23. initeCursor();
  24. adapter = new ViewPagerAdapter(lists);
  25. viewPager = (ViewPager) findViewById(R.id.search_viewpager);
  26. viewPager.setAdapter(adapter);
  27. // ViewPager滑动监听器
  28. viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
  29. @Override
  30. public void onPageSelected(int arg0) {
  31. // TODO Auto-generated method stub
  32. // 当滑动时,顶部的imageView是通过animation缓慢的滑动
  33. switch (arg0) {
  34. case 0:
  35. if (currentItem == 1) {
  36. animation = new TranslateAnimation(offSet * 2 + bmWidth, 0, 0,0);
  37. } else if (currentItem == 2) {
  38. animation = new TranslateAnimation(offSet * 4 + 2 * bmWidth, 0,0, 0);
  39. }
  40. break;
  41. case 1:
  42. if (currentItem == 0) {
  43. animation = new TranslateAnimation(0, offSet * 2 + bmWidth, 0,0);
  44. } else if (currentItem == 2) {
  45. animation = new TranslateAnimation(4 * offSet + 2 * bmWidth,offSet * 2 + bmWidth, 0, 0);
  46. }
  47. break;
  48. }
  49. currentItem = arg0;
  50. animation.setDuration(500);
  51. animation.setFillAfter(true);
  52. imageView.startAnimation(animation);
  53. }
  54. @Override
  55. public void onPageScrolled(int arg0, float arg1, int arg2) {
  56. // TODO Auto-generated method stub
  57. }
  58. @Override
  59. public void onPageScrollStateChanged(int arg0) {
  60. // TODO Auto-generated method stub
  61. }
  62. });
  63. }
  64. /**
  65. * 计算滑动的图片的位置
  66. */
  67. private void initeCursor() {
  68. cursor = BitmapFactory.decodeResource(getResources(),R.drawable.viewpager_img);
  69. bmWidth = cursor.getWidth();
  70. DisplayMetrics dm;
  71. dm = getResources().getDisplayMetrics();
  72. offSet = (dm.widthPixels - 2 * bmWidth) / 4;
  73. matrix.setTranslate(offSet, 0);
  74. imageView.setImageMatrix(matrix); // 需要iamgeView的scaleType为matrix
  75. currentItem = 0;
  76. }
  77. }

最后,不能忘了ViewPager的Adapter

[java] view plaincopy
  1. public class ViewPagerAdapter extends PagerAdapter{
  2. List<View> viewLists;
  3. public ViewPagerAdapter(List<View> lists)
  4. {
  5. viewLists = lists;
  6. }
  7. @Override
  8. public int getCount() {                                                                 //获得size
  9. // TODO Auto-generated method stub
  10. return viewLists.size();
  11. }
  12. @Override
  13. public boolean isViewFromObject(View arg0, Object arg1) {
  14. // TODO Auto-generated method stub
  15. return arg0 == arg1;
  16. }
  17. @Override
  18. public void destroyItem(View view, int position, Object object)                       //销毁Item
  19. {
  20. ((ViewPager) view).removeView(viewLists.get(position));
  21. }
  22. @Override
  23. public Object instantiateItem(View view, int position)                                //实例化Item
  24. {
  25. ((ViewPager) view).addView(viewLists.get(position), 0);
  26. return viewLists.get(position);
  27. }
  28. }

ViewPager的使用方法相关推荐

  1. ViewPager的setOnPageChangeListener方法详解

    ViewPage使用时,最关键的代码就是setOnPageChangeListener,传入一个ViewPager.SimpleOnPageChangeListener对象.ViewPager.Sim ...

  2. 解决ViewPager嵌套后子ViewPager不能滑动的方法

    2019独角兽企业重金招聘Python工程师标准>>> 重写父ViewPager,并在父ViewPager重载onInterceptTouchEvent方法,并返回false: @O ...

  3. android viewpager 滑动方法,Android中Viewpager禁止滑动的实现

    前言 现在很多app,首页不允许滑动切换(因为页面加载吧),但是又用viewpage来管理frgament.因为方便嘛. 以前在网上找的例子: public class NoScrollViewPag ...

  4. RecyclerView横向滑动与ViewPager冲突问题

    问题出现场景: TabLayout + ViewPager + Fragment,Fragment中包含一个横向滑动的RecyclerView,出现了左右滑动RecyclerView时会与ViewPa ...

  5. Viewpager的创建和使用——————————不懂的大家可以问,欢迎提问

    ViewPager android-supportv4.jar功能:使低版本1.6-2.3能够使用3.0之后的新特性 fragment.Actionbar.ViewPager 应用场景:1. 新手指引 ...

  6. android view 源码分析,Android ViewPager源码详细分析

    1.问题 由于Android Framework源码很庞大,所以读源码必须带着问题来读!没有问题,创造问题再来读!否则很容易迷失在无数的方法与属性之中,最后无功而返. 那么,关于ViewPager有什 ...

  7. ViewPager实现滑动翻页效果

    实现ViewPager的滑动翻页效果可以使用ViewPager的setPageTransformer方法,如下: import android.content.Context; import andr ...

  8. viewPager开启界面导航之旅

    当下载一个app时,首次使用都会出现界面导航页面,今天就来写一个简单的页面导航,由于本人比较懒,随便找了一张图片,你可以按照你的想法换掉,废话少说,开始界面导航之旅 首先先写一个不到导航小圆点的界面导 ...

  9. android ViewPager使用遇到的问题

    项目需求是需要实现一个有两页可滑动的界面,就想到了使用ViewPager,在实现是没有深入考虑,就直接使用了PagerAdapter,页面是正常实现了,可是发现无法流畅的刷新页面(直接使用notify ...

最新文章

  1. 烧水壶起水沟了怎么办?
  2. Linux如何在栈上分配内存,Java堆与栈内存分配及String小记
  3. 同一台电脑安装python2python3
  4. 2.2线性表的顺序表示和实现
  5. linux下dns服务器安装,Linux下DNS服务器安装配置方法详细介绍
  6. delphi组件读写机制
  7. group by having where order by
  8. matlab画x的1 3次方图像,Y=X的3次方的图像)
  9. 鲁棒控制--simulink不确定模型仿真
  10. 亚马逊网上书店、巴诺书店最佳畅销书《最后期限》
  11. 汉语语言分析(2) - 短语
  12. sqlmap用法详解
  13. matlab 画地图 经纬度,MATLAB绘制地图.docx
  14. 织梦套用html模板文件,织梦CMS套模板建站流程
  15. 动手下载网易课程视频 -- 正式下载
  16. zookeeper选举机制详解
  17. 你怀疑过 温水煮青蛙 的故事吗
  18. QT关于界面常用设置
  19. Camera2 OpenCamera流程
  20. Notification在应用通知管理页添加更多设置入口

热门文章

  1. 关于圣经的十大误解 Top 10 Misconceptions About The Bible
  2. 勾股数元组( 如果3个正整数(a,b,c)满足a2 + b2 = c2的关系)
  3. Android 7.0 变更
  4. topcoder srm 390 div1
  5. C语言标准,ANSI C,ISO C,GNU C
  6. R语言ineq算基尼系数_科学网—一招搞定泰尔指数及其分解 - 王庆喜的博文
  7. 片选,怎么看时序图,电路原理图。CE OE WE信号 纳秒
  8. Visio2007安装
  9. Netty入门--传统IO与NIO详解
  10. next.js 初试