设为首页 加入收藏

TOP

viewPager+Fragment实现左右划屏(一)
2015-07-24 05:35:50 来源: 作者: 【 】 浏览:17
Tags:viewPager Fragment 实现 左右

最近接触左右划屏,从网上搜了一些资料,学习了一下,觉得不错,总结一下。


效果图如下,可以实现左右划屏

\

先说一下思路:

1.创建一个.java文件,继承Fragment

2.创建onCreateView()方法

3.将主页面的布局放在onCreateView中

View view = inflater.inflate(R.layout.fragment_userinfo, null);
return view;
4.初始化TextView,并且监听

textView1 = (TextView) view.findViewById(R.id.text1);
		textView2 = (TextView) view.findViewById(R.id.text2);
		textView3 = (TextView) view.findViewById(R.id.text3);

		textView1.setOnClickListener(new MyOnClickListener(0));
		textView2.setOnClickListener(new MyOnClickListener(1));
		textView3.setOnClickListener(new MyOnClickListener(2));

5.初始化ImageView,并计算滑动数据

private void InitImageView(LayoutInflater inflater,View view) {
		imageView = (ImageView) view.findViewById(R.id.cursor);
		bmpW = BitmapFactory.decodeResource(getResources(), R.drawable.a)
				.getWidth();// 获取图片宽度
		DisplayMetrics dm = new DisplayMetrics();
		getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
		int screenW = dm.widthPixels;// 获取分辨率宽度
		offset = (screenW / 3 - bmpW) / 2;// 计算偏移量
		Matrix matrix = new Matrix();
		matrix.postTranslate(offset, 0);
		imageView.setImageMatrix(matrix);// 设置动画初始位置
	}

只贴一下主要的代码:

public class UserInfoFragment extends Fragment {

	private ViewPager viewPager;// 页卡内容
	private ImageView imageView;// 动画图片
	private TextView textView1, textView2, textView3;
	private List
  
    views;// Tab页面列表
	private List
   
     fragments;// Tab页面列表 private int offset = 0;// 动画图片偏移量 private int currIndex = 0;// 当前页卡编号 private int bmpW;// 动画图片宽度 private View view1, view2, view3;// 各个页卡 private Fragment fragment; private FragmentManager fragmentManager; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (Util.get
    AndroidSDKVersion() >= 4) { fragment = new UserInfoSettingFragment(); fragmentManager = getChildFragmentManager(); } View view = inflater.inflate(R.layout.fragment_userinfo, null); InitImageView(inflater,view); InitTextView(view); InitViewPager(inflater,view); return view; } private void InitViewPager(LayoutInflater inflater,View view) { viewPager = (ViewPager) view.findViewById(R.id.vPager); views = new ArrayList
    
     (); fragments=new ArrayList
     
      (); fragments.add(new UserInfoSettingFragment()); fragments.add(new UserInfoMesFragment()); fragments.add(new NurseQuFragment()); viewPager.setAdapter(new MyFragmentAdpter(fragments,fragmentManager)); viewPager.setCurrentItem(0); viewPager.setOnPageChangeListener(new MyOnPageChangeListener()); } /** * 初始化头标 */ private void InitTextView(View view) { textView1 = (TextView) view.findViewById(R.id.text1); textView2 = (TextView) view.findViewById(R.id.text2); textView3 = (TextView) view.findViewById(R.id.text3); textView1.setOnClickListener(new MyOnClickListener(0)); textView2.setOnClickListener(new MyOnClickListener(1)); textView3.setOnClickListener(new MyOnClickListener(2)); } /** * 2 * 初始化动画,这个就是页卡滑动时,下面的横线也滑动的效果,在这里需要计算一些数据 3 */ private void InitImageView(LayoutInflater inflater,View view) { imageView = (ImageView) view.findViewById(R.id.cursor); bmpW = BitmapFactory.decodeResource(getResources(), R.drawable.a) .getWidth();// 获取图片宽度 DisplayMetrics dm = new DisplayMetrics(); getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇vector shrink_to_fit 下一篇HDU 3415 Max Sum of Max-K-sub-s..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: