2019独角兽企业重金招聘Python工程师标准>>>

在手机QQ上切换封面主题板块,以及在某些App Shop中,我们经常看见Gallery效果的影子,但Gallery以及被一起了,这里我们实现使用ViewPager实现Gallery效果

布局文件:

(注意,根布局和ViewPager都要使用android:clipChildren="false",表示当显示内容区域超过控件区域,

是否裁剪内容区域的宽度和高度,以实现遮盖超出区域,默认是true)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/gallery_viewpager_layout"android:clipChildren="false" android:orientation="vertical" ><android.support.v4.view.ViewPager android:id="@+id/gallery_viewpager"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_gravity="center"  android:clipChildren="false"/>
</LinearLayout>

代码文件

public class ViewPagerGallery extends Activity {private ViewPager mGalleryViewPager;private LinearLayout mViewPagerContainer;private int pagerWidth = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.viewpager_gallery);mGalleryViewPager = (ViewPager)findViewById(R.id.gallery_viewpager);  mViewPagerContainer = (LinearLayout)findViewById(R.id.gallery_viewpager_layout);  pagerWidth =  (int) (getResources().getDisplayMetrics().widthPixels*3.0f/5.0f);mGalleryViewPager.measure(0, 0);LayoutParams lp = mGalleryViewPager.getLayoutParams();if(lp==null){lp = new LayoutParams(pagerWidth,LayoutParams.MATCH_PARENT);}else{lp.width = pagerWidth;}mGalleryViewPager.setLayoutParams(lp);//设置页面宽度为屏幕的3/5mGalleryViewPager.setOffscreenPageLimit(4);  //设置ViewPager至多缓存4个Pager页面,防止多次加载mGalleryViewPager.setPageMargin(50);  //设置Pager之间的间距mGalleryViewPager.setAdapter(new GalleryPagerAdapter()); mGalleryViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener(){@Overridepublic void onPageScrolled(int position, float positionOffset,int positionOffsetPixels) {super.onPageScrolled(position, positionOffset, positionOffsetPixels);if (mViewPagerContainer != null) {  mViewPagerContainer.invalidate();  //更新超出区域页面,否则会出现页面缓存,导致页面效果不佳}  }});  }private class GalleryPagerAdapter extends PagerAdapter{@Overridepublic int getCount() {return 6;}@Overridepublic boolean isViewFromObject(View view, Object obj){return view==obj;}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {((ViewPager)container).removeView((ImageView)object); }@Overridepublic Object instantiateItem(ViewGroup container, int position) {int resId = getResources().getIdentifier("img0".concat(String.valueOf(position)), "drawable", getPackageName());ImageView imageView = createImageView(resId);((ViewPager)container).addView(imageView, position); return imageView;}public ImageView createImageView(int resId){ImageView iv = new ImageView(ViewPagerGallery.this);LayoutParams lp = iv.getLayoutParams();if(lp==null){lp = new LayoutParams(pagerWidth, LayoutParams.MATCH_PARENT);}else{lp.width = pagerWidth;lp.height = LayoutParams.MATCH_PARENT;}iv.setScaleType(ScaleType.FIT_CENTER);iv.setImageResource(resId);iv.setLayoutParams(lp);return iv;}}
}

       

Try doing it;

转载于:https://my.oschina.net/ososchina/blog/398369

Android 使用ViewPager实现画廊Gallery效果相关推荐

  1. 利用ViewPager实现画廊Gallery效果

    1. 需求确认 最近做的一个小学的定制项目,谈需求的时候客户提到一个界面的效果. 客户:这个界面我们需要显示一张XX图片,但是它可以左右滑,为了知道它可以滑,需要在两边露一点比较小的图出来. UI : ...

  2. andorid 使用ViewPager简单实现画廊Gallery效果 (一)

    前言:一个人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻.                                              ...

  3. android viewpager画廊,Android使用ViewPager实现画廊效果

    按照国际惯例,先上效果图 其实这跟普通的ViewPager原理都一样,需要改变的地方就是: 1.增加滑进和滑出的动画效果 2.缩小ViewPager的大小,给屏幕上留出上一张和下一张视图的空间 布局文 ...

  4. 011 Android TabLayout+ViewPager实现顶部滑动效果(多个页面)

    1.TabLayout介绍 TabLayout提供了一个水平的布局用来展示Tabs,很多应用都有这样的设计,典型的有网易新闻,简书,知乎等.TabLayout就可以很好的完成这一职责,首先TabLay ...

  5. Android使用ViewPager实现左右滑动效果

    2019独角兽企业重金招聘Python工程师标准>>> http://blog.csdn.net/zhy_cheng/article/details/8042785 转载于:http ...

  6. 【Android UI】案例01Cover Flow3D效果的实现(Gallery+BaseAdapter)

    本例主要介绍CoverFlow3D的实现.首先介绍一下Cover Flow.Cover Flow是苹果首创的将多首歌曲的封面以3D界面的形式显示出来的方式. 本案例摘自网络http://www.cnb ...

  7. android双重for循环,Android实现ViewPager无限循环效果(二)

    本文实例为大家分享了Android实现ViewPager无限循环效果的第二种方式,供大家参考,具体内容如下 原理:在Adapter中将getCount设置为无限大 package com.xiaoma ...

  8. android如何自定义viewpager,Android自定义ViewPager实现个性化的图片切换效果

    第一次见到ViewPager这个控件,瞬间爱不释手,做东西的主界面通通ViewPager,以及图片切换也抛弃了ImageSwitch之类的,开始让ViewPager来做.时间长了,ViewPager的 ...

  9. Android之RecyclerView 实现真正的Gallery效果

    简介: RecyclerView是support-v7包中的新组件,是一个强大的滑动组件,与经典的ListView相比,同样拥有item回收复用的功能,但是直接把viewholder的实现封装起来,用 ...

最新文章

  1. Leetcode 373. 查找和最小的K对数字 解题思路及C++实现
  2. 杭电1180java实现(bfs)
  3. CDH4.0安装及配置(二)配置网易yum源
  4. 理解Linux虚拟文件系统VFS
  5. [渝粤教育] 西南科技大学 施工组织 在线考试复习资料
  6. IT英语2-编程词汇编程英语词汇
  7. 【转】解决WCF大数据量传输 ,System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的连接...
  8. 读入字符串/字符 scanf与getchar/gets区别
  9. fatal: “Could not read remote” -- Mac下使用Git Push显示权限错误
  10. 使用DevExpress.XtraTabbedMdi.XtraTabbedMdiManager控件来加载MDI窗体
  11. javascript之函数使用
  12. JS实现页面保存为图片
  13. android六边形控件,Android自定义六边形控件
  14. “无边框”引发口水大战 供应链考验手机硬件创新
  15. dnf压爆服务器挑战网站,dnf手游压爆服务器挑战在哪里?地下城与勇士压爆挑战体验时间介绍[多图]...
  16. 使用负载均衡技术建设高负载的网络站点(经典文章)
  17. 作为一个数学专业的学生,我是怎么看待编程的?
  18. 网络入侵检测--Snort软件配置文件snort.conf详解
  19. 【历史上的今天】9 月 7 日:世界上第一部电子电视;惠普联合创始人出生;上亿美国人隐私信息泄露
  20. 云计算是怎么定义的,核心技术有哪些?

热门文章

  1. 我是做Java的,刚入职了,月薪20k,面试题还是很管用的
  2. 短短几分钟快速带你掌握C语言指南针!
  3. 开课吧课堂之何时调用构造函数
  4. 【转载】Maven pom文件详解
  5. TCP/IP之封装,分用,server模型
  6. 微信快速开发框架(八)-- V2.3--增加语音识别及网页获取用户信息,代码已更新至Github...
  7. CloudStack 4.3功能前瞻
  8. 运用提示原则证明线性无关
  9. linux系统下Opencv4.1.1编译安装,以及增加子函数和python中调用
  10. windows下安装ubuntu16.04双系统的注意事项