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用法的更多相关文章
- Android ViewPager 用法
Android ViewPager 用法 场景:一般第一次打开应用程序时,程序会有一个提示页来给展现应用程序都有哪些功能:或者程序更新时,又更新哪些新特性,都可以使用ViewPager Demo 描述 ...
- Android ViewPager用法小结
android-support-v4.jar 是谷歌提供给我们的一个兼容低版本号安卓设备的软件包.里面包囊了仅仅有在 Android 3.0 以上可用的API.而 ViewPager 就是当中之中的一 ...
- 【转】android ViewPager,ViewFlipper,ViewFlow实现左右滑动
转自:http://blog.csdn.net/zhouyuanjing/article/details/8290454 开篇 首页只是作为ViewPager,ViewFlipper,ViewFlow ...
- Android笔记: ViewPager基本用法
ViewPager控件可以实现多个View(或fragment)滑动切换的效果,属于比较常用的控件.下面用一个简单的例子介绍一下该控件的基本用法. 首先是布局文件activity_view_pager ...
- xamarin android viewpager的用法
1.什么是ViewPager 通过手势滑动可以完成view的切换,一般是用来app的引导页或则实现图片轮播,类似网页上的banner轮播. Adnroid 3.0后引入的一个UI控件,在xamarin ...
- ViewPager的简单用法+适配器+监听器的介绍
之前的actionbar+fragment文章中写过viewpager的简单用法,但因为是融合的文章,所以今天把viewpager提取出来写了.方便查询浏览~ 思路: 1.在布局文件中设置viewpa ...
- 浅谈ViewPager与TabLayout的简单用法
今天介绍一下ViewPager与TabLayout的简单用法 1.准备 在一切开始之前,你懂得,先导库,老方法,在build.gradle直接添加下面这一句 implementation ...
- android 中 ViewPager 的平常用法 ViewPager+ Views
延续前面几个的经常用到的ViewPager, 直接加载各种不同的 View 工程目录: 代码: public class ViewActivity extends Activity { // 每个Vi ...
- viewpager的简单使用,以及ValueAnimator的用法示例
之前在网上看到一篇viewpager简单使用的例子程序,主要采用了上部标签button+中间指示作用的imageview+下部viewpager的结构,点击上部标签,或者滑动viewpager,均可以 ...
随机推荐
- [文学阅读] METEOR: An Automatic Metric for MT Evaluation with Improved Correlation with Human Judgments
METEOR: An Automatic Metric for MT Evaluation with Improved Correlation with Human Judgments Satanje ...
- BZOJ 3747 POI2015 Kinoman 段树
标题效果:有m点,每个点都有一个权值.现在我们有这个m为点的长度n该序列,寻求区间,它仅出现一次在正确的点区间内值和最大 想了很久,甚至神标题,奔说是水的问题--我醉了 枚举左点 对于每个请求留点右键 ...
- ajax方式提交带文件上传的表单,上传后不跳转
ajax方式提交带文件上传的表单 一般的表单都是通过ajax方式提交,所以碰到带文件上传的表单就比较麻烦.基本原理就是在页面增加一个隐藏iframe,然后通过ajax提交除文件之外的表单数据,在表单数 ...
- effective c++ 条款6 如果不想要就要告诉大家
这个条款应该和第五个放在一起 编译器默认生成 1 无参构造函数, 2 析构函数 3 拷贝构造函数 4 赋值预算符 当我们不需要,就要显示的告诉大家我们不需要. 方法:自己声明这个函数为private, ...
- 使用 Cordova+Visual Studio 创建跨平台移动应用(3)
1 背景 本章节是关于Telerik AppBuilder for Visual Studio的. 目前(2014.12)为Telerik公司Telerik Platform的一部分,Telerik ...
- tolower (Function)
this is a function that Convert uppercase letter to lowercase Converts c to its lowercase equivalent ...
- JavaEE SSH集成框架(两) struts2 本地加载dtd文件,action组态
1. 载入中struts2的dtd文件.使struts.xml网络无法验证,和eclipse有技巧 在src在创建struts.xml: <? xmlversion="1.0" ...
- windows下搭建Apache+Mysql+PHP开发环境
原文:windows下搭建Apache+Mysql+PHP开发环境 要求 必备知识 熟悉基本编程环境搭建. 运行环境 windows 7(64位); Apache2.2;MySQL Server 5. ...
- 采用Sambaserver由win平台,linux平台上传文件
1.构造yum [root@db /]# cd /etc/yum.repos.d/ [root@db yum.repos.d]# vi yum.repo --改动光盘挂载位置,enabled设置为启动 ...
- ebay的api开发技术说明,有点乱
使用eBay API的基本步骤引入 开始eBay API,例如,以下基本步骤需要: 1. 注册开发者账号: https://developer.ebay.com/join/Default.asp ...