Android怎么使用ViewPager实现画廊Gallery效果
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,本篇内容介绍了"Android怎么使用ViewPager实现画廊Gallery效果"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望
千家信息网最后更新 2025年12月03日Android怎么使用ViewPager实现画廊Gallery效果
本篇内容介绍了"Android怎么使用ViewPager实现画廊Gallery效果"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
在手机QQ上切换封面主题板块,以及在某些App Shop中,我们经常看见Gallery效果的影子,但Gallery以及被一起了,这里我们实现使用ViewPager实现Gallery效果
布局文件:
(注意,根布局和ViewPager都要使用android:clipChildren="false",表示当显示内容区域超过控件区域,
是否裁剪内容区域的宽度和高度,以实现遮盖超出区域,默认是true)
代码文件
public class ViewPagerGallery extends Activity { private ViewPager mGalleryViewPager; private LinearLayout mViewPagerContainer; private int pagerWidth = 0; @Override protected 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/5 mGalleryViewPager.setOffscreenPageLimit(4); //设置ViewPager至多缓存4个Pager页面,防止多次加载 mGalleryViewPager.setPageMargin(50); //设置Pager之间的间距 mGalleryViewPager.setAdapter(new GalleryPagerAdapter()); mGalleryViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener(){ @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { super.onPageScrolled(position, positionOffset, positionOffsetPixels); if (mViewPagerContainer != null) { mViewPagerContainer.invalidate(); //更新超出区域页面,否则会出现页面缓存,导致页面效果不佳 } } }); } private class GalleryPagerAdapter extends PagerAdapter { @Override public int getCount() { return 6; } @Override public boolean isViewFromObject(View view, Object obj) { return view==obj; } @Override public void destroyItem(ViewGroup container, int position, Object object) { ((ViewPager)container).removeView((ImageView)object); } @Override public 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;
"Android怎么使用ViewPager实现画廊Gallery效果"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
效果
区域
页面
内容
画廊
宽度
布局
文件
更多
知识
缓存
实用
学有所成
接下来
主题
之间
代码
困境
实际
封面
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
杭州android软件开发公司
湖北省公安厅网络安全
文件系统和数据库
数据库元用什么语句表达
流浪地球网络安全视频
数据库探针 作用
车辆场景数据库
计算机编程包括软件开发吗
软件开发经理招聘信息
ado 数据库 封装类
ios奥丁神叛服务器繁忙
共同筑起网络安全钢铁长城
以后想要从事数据库
江西汇友网络技术
软件开发度量考核方法
数据库筛选条码
上海股指期货套利软件开发
网络安全项目推荐
ecu 网络安全
数据库系统技术的实质
360网络安全地位
计算机仿真软件开发
wincc7.5数据库在哪里
2022最新网络技术及应用有哪些
北京新联诺威网络技术
公益广告设计软件开发
大智慧软件开发有限公司
网络安全好还是警务指挥与战术好
数据库陈明忠
江苏软件开发培训班教学视频