ViewPager的使用方法
看图先:
页面中填充内容是随机关键词飞入和飞出动画效果,随后会更新,现在请先无视吧
---2015-02-27---
两年后终于更新了,网上都能搜到的,哎 无奈太懒http://blog.csdn.net/onlyonecoder/article/details/43965695
-----------
首先是 导入jar包 下载地址: android-support-v4.jar
布局文件里添加viewPager布局
- <android.support.v4.view.ViewPager
- android:id="@+id/search_viewpager"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center" >
- </android.support.v4.view.ViewPager>
再创建两个item布局用于填充在ViewPager里
然后就是Activity了,主要写了左右滑动切换页面,还有一个小图片随页面切换 位移的动画效果
- public class SearchAllcityActivity extends Activity {
- private KeywordsFlow keywordsFlow;
- private ViewPager viewPager;
- private ImageView imageView;
- private List<View> lists = new ArrayList<View>();
- private ViewPagerAdapter adapter;
- private Bitmap cursor;
- private int offSet;
- private int currentItem;
- private Matrix matrix = new Matrix();
- private int bmWidth;
- private Animation animation;
- private Button shuaxin_sq, shuaxin_fl;
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.search_allcity);
- // 随页面滑动图片
- imageView = (ImageView) findViewById(R.id.viewpaget_img);
- // 热门商圈和热门分类 页面添加到viewPager集合
- lists.add(getLayoutInflater().inflate(R.layout.search_hot_shangqu, null));
- lists.add(getLayoutInflater().inflate(R.layout.search_hot_fenlei, null));
- // 初始化滑动图片位置
- initeCursor();
- adapter = new ViewPagerAdapter(lists);
- viewPager = (ViewPager) findViewById(R.id.search_viewpager);
- viewPager.setAdapter(adapter);
- // ViewPager滑动监听器
- viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
- @Override
- public void onPageSelected(int arg0) {
- // TODO Auto-generated method stub
- // 当滑动时,顶部的imageView是通过animation缓慢的滑动
- switch (arg0) {
- case 0:
- if (currentItem == 1) {
- animation = new TranslateAnimation(offSet * 2 + bmWidth, 0, 0,0);
- } else if (currentItem == 2) {
- animation = new TranslateAnimation(offSet * 4 + 2 * bmWidth, 0,0, 0);
- }
- break;
- case 1:
- if (currentItem == 0) {
- animation = new TranslateAnimation(0, offSet * 2 + bmWidth, 0,0);
- } else if (currentItem == 2) {
- animation = new TranslateAnimation(4 * offSet + 2 * bmWidth,offSet * 2 + bmWidth, 0, 0);
- }
- break;
- }
- currentItem = arg0;
- animation.setDuration(500);
- animation.setFillAfter(true);
- imageView.startAnimation(animation);
- }
- @Override
- public void onPageScrolled(int arg0, float arg1, int arg2) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onPageScrollStateChanged(int arg0) {
- // TODO Auto-generated method stub
- }
- });
- }
- /**
- * 计算滑动的图片的位置
- */
- private void initeCursor() {
- cursor = BitmapFactory.decodeResource(getResources(),R.drawable.viewpager_img);
- bmWidth = cursor.getWidth();
- DisplayMetrics dm;
- dm = getResources().getDisplayMetrics();
- offSet = (dm.widthPixels - 2 * bmWidth) / 4;
- matrix.setTranslate(offSet, 0);
- imageView.setImageMatrix(matrix); // 需要iamgeView的scaleType为matrix
- currentItem = 0;
- }
- }
最后,不能忘了ViewPager的Adapter
- public class ViewPagerAdapter extends PagerAdapter{
- List<View> viewLists;
- public ViewPagerAdapter(List<View> lists)
- {
- viewLists = lists;
- }
- @Override
- public int getCount() { //获得size
- // TODO Auto-generated method stub
- return viewLists.size();
- }
- @Override
- public boolean isViewFromObject(View arg0, Object arg1) {
- // TODO Auto-generated method stub
- return arg0 == arg1;
- }
- @Override
- public void destroyItem(View view, int position, Object object) //销毁Item
- {
- ((ViewPager) view).removeView(viewLists.get(position));
- }
- @Override
- public Object instantiateItem(View view, int position) //实例化Item
- {
- ((ViewPager) view).addView(viewLists.get(position), 0);
- return viewLists.get(position);
- }
- }
ViewPager的使用方法相关推荐
- ViewPager的setOnPageChangeListener方法详解
ViewPage使用时,最关键的代码就是setOnPageChangeListener,传入一个ViewPager.SimpleOnPageChangeListener对象.ViewPager.Sim ...
- 解决ViewPager嵌套后子ViewPager不能滑动的方法
2019独角兽企业重金招聘Python工程师标准>>> 重写父ViewPager,并在父ViewPager重载onInterceptTouchEvent方法,并返回false: @O ...
- android viewpager 滑动方法,Android中Viewpager禁止滑动的实现
前言 现在很多app,首页不允许滑动切换(因为页面加载吧),但是又用viewpage来管理frgament.因为方便嘛. 以前在网上找的例子: public class NoScrollViewPag ...
- RecyclerView横向滑动与ViewPager冲突问题
问题出现场景: TabLayout + ViewPager + Fragment,Fragment中包含一个横向滑动的RecyclerView,出现了左右滑动RecyclerView时会与ViewPa ...
- Viewpager的创建和使用——————————不懂的大家可以问,欢迎提问
ViewPager android-supportv4.jar功能:使低版本1.6-2.3能够使用3.0之后的新特性 fragment.Actionbar.ViewPager 应用场景:1. 新手指引 ...
- android view 源码分析,Android ViewPager源码详细分析
1.问题 由于Android Framework源码很庞大,所以读源码必须带着问题来读!没有问题,创造问题再来读!否则很容易迷失在无数的方法与属性之中,最后无功而返. 那么,关于ViewPager有什 ...
- ViewPager实现滑动翻页效果
实现ViewPager的滑动翻页效果可以使用ViewPager的setPageTransformer方法,如下: import android.content.Context; import andr ...
- viewPager开启界面导航之旅
当下载一个app时,首次使用都会出现界面导航页面,今天就来写一个简单的页面导航,由于本人比较懒,随便找了一张图片,你可以按照你的想法换掉,废话少说,开始界面导航之旅 首先先写一个不到导航小圆点的界面导 ...
- android ViewPager使用遇到的问题
项目需求是需要实现一个有两页可滑动的界面,就想到了使用ViewPager,在实现是没有深入考虑,就直接使用了PagerAdapter,页面是正常实现了,可是发现无法流畅的刷新页面(直接使用notify ...
最新文章
- 烧水壶起水沟了怎么办?
- Linux如何在栈上分配内存,Java堆与栈内存分配及String小记
- 同一台电脑安装python2python3
- 2.2线性表的顺序表示和实现
- linux下dns服务器安装,Linux下DNS服务器安装配置方法详细介绍
- delphi组件读写机制
- group by having where order by
- matlab画x的1 3次方图像,Y=X的3次方的图像)
- 鲁棒控制--simulink不确定模型仿真
- 亚马逊网上书店、巴诺书店最佳畅销书《最后期限》
- 汉语语言分析(2) - 短语
- sqlmap用法详解
- matlab 画地图 经纬度,MATLAB绘制地图.docx
- 织梦套用html模板文件,织梦CMS套模板建站流程
- 动手下载网易课程视频 -- 正式下载
- zookeeper选举机制详解
- 你怀疑过 温水煮青蛙 的故事吗
- QT关于界面常用设置
- Camera2 OpenCamera流程
- Notification在应用通知管理页添加更多设置入口
热门文章
- 关于圣经的十大误解 Top 10 Misconceptions About The Bible
- 勾股数元组( 如果3个正整数(a,b,c)满足a2 + b2 = c2的关系)
- Android 7.0 变更
- topcoder srm 390 div1
- C语言标准,ANSI C,ISO C,GNU C
- R语言ineq算基尼系数_科学网—一招搞定泰尔指数及其分解 - 王庆喜的博文
- 片选,怎么看时序图,电路原理图。CE OE WE信号 纳秒
- Visio2007安装
- Netty入门--传统IO与NIO详解
- next.js 初试