ViewPager 实现画廊效果
来源:互联网 发布:ui设计要学编程吗 编辑:程序博客网 时间:2024/05/17 08:09
有图有真相我们先看图
上代码了:
初始化:
private void initView() { WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE); int width = wm.getDefaultDisplay().getWidth(); int height = wm.getDefaultDisplay().getHeight(); RelativeLayout.LayoutParams params=new RelativeLayout.LayoutParams( width*5/10, height*6/20); viewPager = (ViewPager) findViewById(R.id.ViewPager); viewPager.setLayoutParams(params); viewPager.setAdapter(new ViewPagerAdapter()); relativeLayout = (RelativeLayout) findViewById(R.id.relativelayout); viewPager.setOffscreenPageLimit(2); viewPager.setPageMargin(100); viewPager.setClipChildren(false); //用来定义他的子控件是否要在他应有的边界内进行绘制 viewPager.setPageTransformer(true,new ZoomOutPageTransformer()); relativeLayout.setClipChildren(false); }
创建Adapter:
public class ViewPagerAdapter extends PagerAdapter{ @Override public int getCount() { return 10; } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public Object instantiateItem(ViewGroup container, final int position) { ImageView imageView = new ImageView(MainActivity.this); imageView.setImageResource(R.mipmap.ddz); imageView.setScaleType(ImageView.ScaleType.FIT_XY); container.addView(imageView); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((ImageView) object); } }
实现PageTransformer接口:
//设置切换动画public class ZoomOutPageTransformer implements ViewPager.PageTransformer{ private static final float MAX_SCALE = 1.2f; private static final float MIN_SCALE = 1.0f;//0.85f @Override public void transformPage(View page, float position) { if (position<=1){ float scaleFactor = MIN_SCALE+(1-Math.abs(position))*(MAX_SCALE-MIN_SCALE); page.setScaleX(scaleFactor); if(position>0){ page.setTranslationX(-scaleFactor*2); }else if(position<0){ page.setTranslationX(scaleFactor*2); } page.setScaleY(scaleFactor); }else { page.setScaleX(MIN_SCALE); page.setScaleY(MIN_SCALE); } } }
接下来看看xml:
<RelativeLayout android:id="@+id/relativelayout" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:clipChildren="false" android:background="@mipmap/ddf" tools:context="com.android.cgcxy.galleryviewpagerview.MainActivity"> <android.support.v4.view.ViewPager android:layout_gravity="center" android:id="@+id/ViewPager" android:clipChildren="false" android:layout_centerVertical="true" android:layout_width="match_parent" android:layout_height="match_parent" /></RelativeLayout>
搞定了
阅读全文
0 0
- ViewPager实现画廊效果
- ViewPager 实现画廊效果
- viewpager实现画廊(一屏多个Fragment)效果
- viewpager实现画廊(一屏多个Fragment)效果
- viewpager实现画廊(一屏多个Fragment)效果
- viewpager实现画廊(一屏多个Fragment)效果
- viewpager实现画廊(一屏多个Fragment)效果
- 基于ViewPager实现Gallery画廊效果
- android使用ViewPager实现画廊效果
- viewpager 实现画廊效果,带动画!
- Android Viewpager实现3D画廊效果
- Android 中使用ViewPager实现画廊效果
- android viewpager实现3d画廊效果
- 【Android】利用ViewPager实现画廊效果
- ViewPager实现简单的画廊效果
- 利用ViewPager实现画廊Gallery效果
- ViewPager+TimerTask实现Gallery画廊效果
- 安卓ViewPager实现画廊效果
- 简单JAVA代码集结
- 小明系列故事——未知剩余系
- 通过ADB命令获取当前activity
- Bi-shoe and Phi-shoe (欧拉函数)
- mybatis-generator 使用
- ViewPager 实现画廊效果
- 【笔记】Linux 创建并编辑文件
- 配置了OpenCV后连HelloWorld都不能写了怎么解决?——新建自己的属性表
- 【资源分享】 Udemy Unity3D Paint Book 2D Game Step By Step
- QT之QApplication
- 机器学习系列(1)_逻辑回归初步
- kettle开发中的OPTION SQL_SELECT_LIMIT=DEFAULT报错
- PCL库实时显示点云流
- Realm、WCDB与SQLite移动数据库性能对比测试