• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > ViewPager与PagerAdapter,viewpager

ViewPager与PagerAdapter,viewpager

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了pageradapter,pageradapter详解,android pageradapter,pageradapter的使用,pageradapter 刷新等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

ViewPager与PagerAdapter,viewpager


ViewPager是一个可以用来滑动内部View的组件,他有一个老搭档PagerAdapter,我们这次就来看看他们这两位拍档的本事。

我们要使用ViewPager与PagerAdapter结合

 


 

首先布局文件

<android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

然后实现自己的adapter继承PagerAdapter。实现PagerAdapter的方法

1、public int getCount();  //获取总View的数量

2、public void startUpdate(ViewGroup container)  ;
3、public Object instantiateItem(ViewGroup container, int position)  ; //实例化当前的View,添加到contrainer中,然后返回生成的View或关联的Object (用于在isViewFromObject中检查)

4、public void destroyItem(ViewGroup container, int position, Object object);  //从container中移除指定的View (释放内存)
5、public void finishUpdate(ViewGroup container)  ;

6、 public boolean isViewFromObject(View view, Object object) ;// 检查View是否与一个Object关联,

下面展示一下demo

 

 

package com.example.communityfunction.myView;

import java.util.List;

import android.animation.Animator;
import android.animation.Animator.AnimatorListener;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.app.ActionBar.LayoutParams;
import android.content.Context;
import android.graphics.Bitmap;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ImageView;

public class ImgViewPagerAdapter extends PagerAdapter
{
    private List<Bitmap> imgBm;
    private Context mContext;
    private ViewPager pager;
    
    public ImgViewPagerAdapter(Context context,List<Bitmap>imgBm,ViewPager pager)
    {
        this.imgBm=imgBm;
        this.mContext=context;
        this.pager=pager;
    }
    @Override
    public int getCount() 
    {
        return imgBm.size();
    }
    @Override
    public Object instantiateItem(final ViewGroup container, int position) 
    {
        ImageView imageView=new ImageView(mContext);
        imageView.setImageBitmap(imgBm.get(position));
        container.addView(imageView,LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
        imageView.setOnClickListener(new OnClickListener() 
        {
            @Override
            public void onClick(View v) 
            {
                startAnim();
            }
        });
        return imageView;
    }
    @Override
    public void destroyItem(ViewGroup container, int position, Object object) 
    {
        container.removeView((View)object);
    }; 

    @Override
    public boolean isViewFromObject(View arg0, Object arg1) 
    {
        return arg0==arg1; //官方提示写法
    }
/*
*动画效果
*/
public void startAnim() { AnimatorSet animSet = new AnimatorSet(); animSet.play(ObjectAnimator.ofFloat(pager, "alpha", 1.0f,0f)) .with(ObjectAnimator.ofFloat(pager, "scaleX",1.0f,0f)) .with(ObjectAnimator.ofFloat(pager, "scaleY",1.0f,0f)); animSet.setDuration(400); animSet.start(); animSet.addListener(new AnimatorListener() { @Override public void onAnimationStart(Animator animation) {} @Override public void onAnimationRepeat(Animator animation) {} @Override public void onAnimationEnd(Animator animation) { pager.setVisibility(View.GONE); } @Override public void onAnimationCancel(Animator animation){} }); } }

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • FragmentStatePagerAdapter和FragmentPagerAdapter区别,fragmentpageradapter
  • ViewPager与PagerAdapter,viewpager

相关文章

  • 2017-05-26认清Android Studio下的Gradle是什么
  • 2017-05-26Mac OSX系统搭建React natvie for android 开发环境,osxnatvie
  • 2017-05-26android:Activity启动模式之singleInstance
  • 2017-05-26Android中使用ImageViewSwitcher实现图片切换轮播导航效果,
  • 2017-05-26android动画详解四 创建动画浅析
  • 2017-05-26OKHttp,okhttp使用
  • 2017-05-26linux下神奇的script命令
  • 2017-05-224.1.2 Activity初窥门径
  • 2017-05-26Android的开机流程及对应源码位置分析,android源码
  • 2017-05-26linux和android调试工具介绍及方法汇总

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • android:webview实现简单的浏览器
    • 手机安全卫士——高级工具-电话归属地查询,安全卫士归属地查询
    • APK瘦身记,如何实现高达53%的压缩效果,apk53%
    • Android细笔记--ContentProvider,--contentprovider
    • 安卓高级组件-----进度条,安卓-----进度条
    • AS400银行核心系统开发中的技术总结--交易和组件写法
    • Android Studio安装指南及genymotion配置
    • Git安装与上传代码至Github,git上传github
    • java 接口的作用和好处,java接口好处
    • andriod 资源文件之存取操作,andriod资源文件

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有