viewPager实现画廊效果,中间显示一张,两侧显示一部分
来源:互联网 发布:mac蓝光原盘怎么播放 编辑:程序博客网 时间:2024/05/22 03:28
布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:layout_marginTop="10dp" android:gravity="center" android:clipChildren="false" android:layerType="software" tools:context="com.baway.hualang.MainActivity"> <android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="300dp" android:layout_height="220dp" android:layout_gravity="center" android:clipChildren="false" > </android.support.v4.view.ViewPager></LinearLayout>适配器
public class MyViewpagerAdapter extends PagerAdapter { private List<Integer> images; private Context context; public MyViewpagerAdapter(List<Integer> images, Context context) { this.context=context; this.images=images; } @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public Object instantiateItem(ViewGroup container, int position) { ImageView vp_iv= new ImageView(context); Glide.with(context).load(images.get(position%images.size())).into(vp_iv); container.addView(vp_iv); return vp_iv; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); }}自定义PageTransformer类
public class MyGallyPageTransformer implements ViewPager.PageTransformer { private static final float min_scale = 0.85f; @Override public void transformPage(View page, float position) { float scaleFactor = Math.max(min_scale, 1 - Math.abs(position)); if (position < -1) { page.setScaleX(scaleFactor); page.setScaleY(scaleFactor); } else if (position < 0) { page.setScaleX(scaleFactor); page.setScaleY(scaleFactor); } else if (position >= 0 && position < 1) { page.setScaleX(scaleFactor); page.setScaleY(scaleFactor); } else if (position >= 1) { page.setScaleX(scaleFactor); page.setScaleY(scaleFactor); } }}代码
public class MainActivity extends AppCompatActivity { private ViewPager vp; private List<Integer> images=new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); vp = (ViewPager) findViewById(R.id.vp); images.add(R.mipmap.xiaomi_guidance_1); images.add(R.mipmap.xiaomi_guidance_2); images.add(R.mipmap.xiaomi_guidance_3); vp.setOffscreenPageLimit(3); int pagerWidth = (int) (getResources().getDisplayMetrics().widthPixels * 3.0f / 5.0f); ViewGroup.LayoutParams lp = vp.getLayoutParams(); if (lp == null) { lp = new ViewGroup.LayoutParams(pagerWidth, ViewGroup.LayoutParams.MATCH_PARENT); } else { lp.width = pagerWidth; } vp.setLayoutParams(lp);//setPageMargin表示设置图片之间的间距 vp.setPageMargin(getResources().getDimensionPixelSize(R.dimen.activity_horizontal_margin)); vp.setPageTransformer(true,new MyGallyPageTransformer()); vp.setAdapter(new MyViewpagerAdapter(images,this)); vp.setCurrentItem(2000); }}
0 0
- viewPager实现画廊效果,中间显示一张,两侧显示一部分
- viewpager实现画廊(中间图片全部显示,左右显示一部分b布局)无限轮播效果
- viewpager实现画廊(中间图片全部显示,左右显示一部分b布局)无限轮播效果
- Android 使用ViewPager实现类似gallery画廊的效果(画廊效果之ViewPager显示多个图片)
- 【转】Android 使用ViewPager实现类似gallery画廊的效果(画廊效果之ViewPager显示多个图片)
- ViewPager实现画廊效果
- ViewPager 实现画廊效果
- Viewpager 实现画廊Gallery效果,左右两侧随着滑动一定比例缩放
- Android 画廊效果之ViewPager显示多个图片
- ViewPager按比例显示图片(显示下一张图片的一部分)
- android开发ViewPager按比例显示图片(显示下一张图片的一部分)
- ViewPager实现Gallery的画廊效果 突显中间 虚化两边的界面
- ViewPager 实现 Galler 效果, 中间大图显示,两边小图展示
- ViewPager 实现 Galler 效果, 中间大图显示,两边小图展示(优化篇)
- viewpager实现画廊(一屏多个Fragment)效果
- viewpager实现画廊(一屏多个Fragment)效果
- viewpager实现画廊(一屏多个Fragment)效果
- viewpager实现画廊(一屏多个Fragment)效果
- POJ
- struts2 访问servelt API
- XBanner支持图片无限轮播控件
- 语法
- DAO操作MYSQL
- viewPager实现画廊效果,中间显示一张,两侧显示一部分
- 挑战程序设计1.6.1 Instance1——三角形
- 方法的重载和重写
- 安装Python扩展时,Configure error: Python headers not found错误解决办法
- 字段名
- ZipUtils 压缩工具包
- [BZOJ 2818]Gcd:莫比乌斯反演
- java值Document解析xml
- java中Comparator有什么用,举例说明?