viewpager 滑动,缩放,子控件偏移引导页
2016-02-29 17:55
375 查看
viewpager主要利用了接口PageTransformer
效果如下图:
左右滑动的时候,子控件也跟着滑动,并且页面有一点的缩放,最大不超过90%。。
1.MainActivity继承FragmentActivity:
2.TranslateFragment
3.TranslatePageTransformer类实现PageTransformer接口:
问题:Didn't find class "android.view.ViewPager" on path: DexPathList[[zip file "/data/app/com.example.loading_page-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.loading_page-1, /vendor/lib, /system/lib]]
解决:使用v4的viewpager
<android.support.v4.view.ViewPager
android:id="@+id/vps"
android:layout_width="match_parent"
android:layout_height="match_parent" />
效果如下图:
左右滑动的时候,子控件也跟着滑动,并且页面有一点的缩放,最大不超过90%。。
1.MainActivity继承FragmentActivity:
public class MainActivity extends FragmentActivity { private ViewPager viewPager; private int[] layouts = { R.layout.guide_one, R.layout.guide_two,R.layout.guide_three,R.layout.guide_four}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); viewPager = (ViewPager) findViewById(R.id.vps); MyAdapter adapter = new MyAdapter(getSupportFragmentManager()); //页面滑动器,PageTransformer viewPager.setPageTransformer(true, new TranslatePageTransformer()); viewPager.setAdapter(adapter); } class MyAdapter extends FragmentStatePagerAdapter { public MyAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { Fragment f = new TranslateFragment(); Bundle bundle = new Bundle(); bundle.putInt("layoutId", layouts[position]); f.setArguments(bundle); return f; } @Override public int getCount() { return 4; } } }
2.TranslateFragment
public class TranslateFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { int layoutId=getArguments().getInt("layoutId"); View v=View.inflate(getActivity(), layoutId, null); return v; } }
3.TranslatePageTransformer类实现PageTransformer接口:
public class TranslatePageTransformer implements PageTransformer { /** * 当ViewPager滑动的时候,每一个页面都会回调该方法。 * View: 当前这个页面 * position:代表当前滑动的位置 */ @SuppressLint("NewApi") @Override public void transformPage(View view, float position) { if(position<1 && position>-1){ //得到当前页面滑动的position,来控制里面的每一个页面子控件加速行驶 //控制子控件在viewpager正常滑动的基础上加一个同方向的偏移量 ViewGroup rl=(ViewGroup)view.findViewById(R.id.rl); //1.子控件偏移 for(int i=0;i<rl.getChildCount();i++){ View child=rl.getChildAt(i); //每一个子控件有平移速度不一样,随机数(0-1) float factor=(float) (Math.random()*2); if(child.getTag()==null){ child.setTag(factor); }else{ factor=(Float) child.getTag(); } //在原来的位置上加一个平移量,position(-1~0~1) child.setTranslationX(position*factor*child.getWidth()); } //2.往右滑动:position:0~1.左边:0~-1 //缩放:0~1 //1.往右移动,缩小。2.往左移动,缩小 . 绝对值:abs() // view.setScaleX(1-Math.abs(position)); // view.setScaleY(1-Math.abs(position)); view.setScaleX(Math.max(0.9f,1-Math.abs(position))); view.setScaleY(Math.max(0.9f, 1-Math.abs(position))); //3d立体翻转效果 // //View的旋转,需要设置旋转中心坐标(绕着Y轴旋转) // view.setPivotX(position<0f?view.getWidth():0f); // view.setPivotY(view.getHeight()*0.5f); // view.setRotationY(position*90f);//旋转的角度 //// view.setRotationY(-position*45f);//旋转的角度 //4.折中翻转效果 // view.setPivotX(view.getWidth()*0.5f); // view.setPivotY(view.getHeight()*0.5f); // view.setRotationY(-position*90f);//旋转的角度//4.让图片折中翻转 // } } }
问题:Didn't find class "android.view.ViewPager" on path: DexPathList[[zip file "/data/app/com.example.loading_page-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.loading_page-1, /vendor/lib, /system/lib]]
解决:使用v4的viewpager
<android.support.v4.view.ViewPager
android:id="@+id/vps"
android:layout_width="match_parent"
android:layout_height="match_parent" />
相关文章推荐
- C#数字图像处理之图像缩放的方法
- C#使用Matrix执行缩放的方法
- C#实现缩放字体的方法
- jquery实现图片按比例缩放示例
- JS+css 图片自动缩放自适应大小
- jQuery实现响应浏览器缩放大小并改变背景颜色
- Android开发之图形图像与动画(二)Animation实现图像的渐变/缩放/位移/旋转
- JavaScript 拖拉缩放效果
- Java图片处理 (文字水印、图片水印、缩放、补白)代码实例
- jquery实现根据浏览器窗口大小自动缩放图片的方法
- JS实现slide文字框缩放伸展效果代码
- PHP实现对png图像进行缩放的方法(支持透明背景)
- php缩放gif和png图透明背景变成黑色的解决方法
- JavaScript实现选择框按比例拖拉缩放的方法
- javaScript实现可缩放的显示区效果代码
- 基于Android 实现图片平移、缩放、旋转同时进行
- Android UI之ImageView实现图片旋转和缩放
- Android手势滑动实现ImageView缩放图片大小
- Android 图像处理(类型转换,比例缩放,倒影,圆角)的小例子
- PHP制作3D扇形统计图以及对图片进行缩放操作实例