下载 >  移动开发 >  Android > ViewPagerFragment 优化

ViewPagerFragment 优化

可在resource里面配置一级页面的数量.
2015-04-14 上传大小:2.32MB
分享
收藏 (1) 举报
ViewPagerFragment

使用ViewPager+Fragment来实现带滚动条的多屏滑动-IndicatorFragmentActivity

立即下载
ViewPagerFragment滑动切换

package com.pyy.viewpagerfragment; import java.util.ArrayList; import java.util.List; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.view.Display; import android.view.View; import android.view.ViewGroup; import android.view.animation.Animation; import android.view.animation.TranslateAnimation; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import com.pyy.viewpagerfragment.R; public class MainActivity extends FragmentActivity { public MainViewPager viewPager; public List<Fragment> fragments = new ArrayList<Fragment>(); public String hello = "hello "; private ImageView mTab1, mTab2, mTab3, mTab4; private ImageView mTabImg; private int currIndex = 0;// 当前页卡编号 private int zero = 0;// 动画图片偏移量 private int one;//单个水平动画位移 private int two; private int three; private FragmentManager fragmentManager; private int displayWidth, displayHeight; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Display currDisplay = getWindowManager().getDefaultDisplay();//获取屏幕当前分辨率 displayWidth = currDisplay.getWidth(); displayHeight = currDisplay.getHeight(); one = displayWidth / 4; //设置水平动画平移大小 two = one * 2; three = one * 3; initViews();//初始化控件 fragments.add(new TabAFragment()); fragments.add(new TabBFragment()); fragments.add(new TabCFragment()); fragments.add(new TabDFragment()); fragmentManager = this.getSupportFragmentManager(); viewPager = (MainViewPager) findViewById(R.id.viewPager); //viewPager.setSlipping(false);//设置ViewPager是否可以滑动 viewPager.setOffscreenPageLimit(4); viewPager.setOnPageChangeListener(new MyOnPageChangeListener()); viewPager.setAdapter(new MyPagerAdapter()); } /** *@Title: initViews *@Description: TODO初始化控件 */ public void initViews() { final LinearLayout tab1Layout = (LinearLayout) findViewById(R.id.tab1Layout); mTab1 = (ImageView) findViewById(R.id.img_weixin); mTab2 = (ImageView) findViewById(R.id.img_address); mTab3 = (ImageView) findViewById(R.id.img_friends); mTab4 = (ImageView) findViewById(R.id.img_settings); mTabImg = (ImageView) findViewById(R.id.img_tab_now); mTab1.setOnClickListener(new MyOnClickListener(0)); mTab2.setOnClickListener(new MyOnClickListener(1)); mTab3.setOnClickListener(new MyOnClickListener(2)); mTab4.setOnClickListener(new MyOnClickListener(3)); //以下是设置移动条的初始位置 RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) mTabImg .getLayoutParams(); int[] location = new int[2]; mTab1.getLocationInWindow(location); int marginLeft = (displayWidth / 4 - 122) / 2;//122是tab下面移动条的宽度 lp.setMargins(marginLeft, 0, 0, 0); mTabImg.setLayoutParams(lp); mTabImg.setVisibility(View.VISIBLE); } /** * @ClassName: MyOnPageChangeListener * @Description: TODO页卡切换监听 * @author Panyy * @date 2013 2013年11月6日 下午2:08:10 * */ public class MyOnPageChangeListener implements OnPageChangeListener { @Override public void onPageSelected(int arg0) { Animation animation = null; switch (arg0) { case 0: mTab1.setImageDrawable(getResources().getDrawable( R.drawable.tab_weixin_pressed)); if (currIndex == 1) { animation = new TranslateAnimation(one, 0, 0, 0); mTab2.setImageDrawable(getResources().getDrawable( R.drawable.tab_address_normal)); } else if (currIndex == 2) { animation = new TranslateAnimation(two, 0, 0, 0); mTab3.setImageDrawable(getResources().getDrawable( R.drawable.tab_find_frd_normal)); } else if (currIndex == 3) { animation = new TranslateAnimation(three, 0, 0, 0); mTab4.setImageDrawable(getResources().getDrawable( R.drawable.tab_settings_normal)); } break; case 1: mTab2.setImageDrawable(getResources().getDrawable( R.drawable.tab_address_pressed)); if (currIndex == 0) { animation = new TranslateAnimation(zero, one, 0, 0); mTab1.setImageDrawable(getResources().getDrawable( R.drawable.tab_weixin_normal)); } else if (currIndex == 2) { animation = new TranslateAnimation(two, one, 0, 0); mTab3.setImageDrawable(getResources().getDrawable( R.drawable.tab_find_frd_normal)); } else if (currIndex == 3) { animation = new TranslateAnimation(three, one, 0, 0); mTab4.setImageDrawable(getResources().getDrawable( R.drawable.tab_settings_normal)); } break; case 2: mTab3.setImageDrawable(getResources().getDrawable( R.drawable.tab_find_frd_pressed)); if (currIndex == 0) { animation = new TranslateAnimation(zero, two, 0, 0); mTab1.setImageDrawable(getResources().getDrawable( R.drawable.tab_weixin_normal)); } else if (currIndex == 1) { animation = new TranslateAnimation(one, two, 0, 0); mTab2.setImageDrawable(getResources().getDrawable( R.drawable.tab_address_normal)); } else if (currIndex == 3) { animation = new TranslateAnimation(three, two, 0, 0); mTab4.setImageDrawable(getResources().getDrawable( R.drawable.tab_settings_normal)); } break; case 3: mTab4.setImageDrawable(getResources().getDrawable( R.drawable.tab_settings_pressed)); if (currIndex == 0) { animation = new TranslateAnimation(zero, three, 0, 0); mTab1.setImageDrawable(getResources().getDrawable( R.drawable.tab_weixin_normal)); } else if (currIndex == 1) { animation = new TranslateAnimation(one, three, 0, 0); mTab2.setImageDrawable(getResources().getDrawable( R.drawable.tab_address_normal)); } else if (currIndex == 2) { animation = new TranslateAnimation(two, three, 0, 0); mTab3.setImageDrawable(getResources().getDrawable( R.drawable.tab_find_frd_normal)); } break; } currIndex = arg0; animation.setFillAfter(true);// True:图片停在动画结束位置 animation.setDuration(150); mTabImg.startAnimation(animation); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } } /** * @ClassName: MyOnClickListener * @Description: TODO头标点击监听 * @author Panyy * @date 2013 2013年11月6日 下午2:46:08 * */ private class MyOnClickListener implements View.OnClickListener { private int index = 0; public MyOnClickListener(int i) { index = i; } @Override public void onClick(View v) { viewPager.setCurrentItem(index); } }; /** * @ClassName: MyPagerAdapter * @Description: TODO填充ViewPager的数据适配器 * @author Panyy * @date 2013 2013年11月6日 下午2:37:47 * */ private class MyPagerAdapter extends PagerAdapter { @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } @Override public int getCount() { return fragments.size(); } @Override public void destroyItem(View container, int position, Object object) { ((ViewPager) container).removeView(fragments.get(position) .getView()); } @Override public Object instantiateItem(ViewGroup container, int position) { Fragment fragment = fragments.get(position); if (!fragment.isAdded()) { // 如果fragment还没有added FragmentTransaction ft = fragmentManager.beginTransaction(); ft.add(fragment, fragment.getClass().getSimpleName()); ft.commit(); /** * 在用FragmentTransaction.commit()方法提交FragmentTransaction对象后 * 会在进程的主线程中,用异步的方式来执行。 * 如果想要立即执行这个等待中的操作,就要调用这个方法(只能在主线程中调用)。 * 要注意的是,所有的回调和相关的行为都会在这个调用中被执行完成,因此要仔细确认这个方法的调用位置。 */ fragmentManager.executePendingTransactions(); } if (fragment.getView().getParent() == null) { container.addView(fragment.getView()); // 为viewpager增加布局 } return fragment.getView(); } }; }

立即下载
ViewPagerFragment 实例

ViewPagerFragment实例 可左右滑动效果! tab包括:ListView Gridview 多级Item 展现等

立即下载
XP优化文件 优化 优化

XP优化文件 优化 优化 优化 优化优化优化优化优化优化优化

立即下载
sql优化

sql优化sql优化sql优化sql优化sql优化sql优化sql优化sql优化sql优化sql优化sql优化sql优化sql优化sql优化

立即下载
java优化java优化

java优化java优化java优化java优化java优化java优化java优化java优化java优化java优化java优化java优化java优化java优化java优化java优化java优化java优化

立即下载
SQL优化 SQL 优化

SQL 优化SQL 优化SQL 优化SQL 优化SQL 优化SQL 优化SQL 优化SQL 优化SQL 优化SQL 优化SQL 优化SQL 优化

立即下载
海量数据优化查询SQL

海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL海量数据 优化 SQL

立即下载
MyEclipse优化

MyEclipse优化MyEclipse优化MyEclipse优化MyEclipse优化MyEclipse优化MyEclipse优化MyEclipse优化

立即下载
ANSYS 优化揭密

ANSYS优化ANSYS优化ANSYS优化ANSYS优化ANSYS优化ANSYS优化ANSYS优化

立即下载
mysq 优化方案+优化策略

mysq 优化方案+优化策略mysq 优化方案+优化策略mysq 优化方案+优化策略mysq 优化方案+优化策略mysq 优化方案+优化策略mysq 优化方案+优化策略mysq 优化方案+优化策略

立即下载
SQL常见的优化

SQL常见的优化SQL常见的优化SQL常见的优化SQL常见的优化SQL常见的优化SQL常见的优化SQL常见的优化SQL常见的优化SQL常见的优化SQL常见的优化SQL常见的优化SQL常见的优化SQL常见的优化SQL常见的优化SQL常见的优化SQL常见的优化SQL常见的优化SQL常见的优化SQL常见的优化SQL常见的优化SQL常见的优化SQL常见的优化SQL常见的优化SQL常见的优化SQL常见的优化

立即下载
sql优化sql优化sql优化sql优化sql优化

sql优化sql优化sql优化sql优化

立即下载
设置电脑桌面优化软件

设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件设置电脑桌面优化软件

立即下载
java代码效率优化

java代码效率优化java代码效率优化java代码效率优化java代码效率优化java代码效率优化java代码效率优化java代码效率优化java代码效率优化java代码效率优化java代码效率优化java代码效率优化java代码效率优化java代码效率优化

立即下载
win_xp_注册表优化

win_xp_注册表优化win_xp_注册表优化win_xp_注册表优化win_xp_注册表优化win_xp_注册表优化win_xp_注册表优化win_xp_注册表优化win_xp_注册表优化win_xp_注册表优化win_xp_注册表优化win_xp_注册表优化win_xp_注册表优化win_xp_注册表优化

立即下载
粒子群优化粒子群优化粒子群优化

粒子群优化粒子群优化粒子群优化粒子群优化粒子群优化

立即下载
COGNOS报表服务器性能优化

COGNOS优化COGNOS优化COGNOS优化COGNOS优化COGNOS优化

立即下载
spark性能优化小结

spark优化,spark优化,spark优化,spark优化,spark优化

立即下载
mysql配置和优化

mysql配置和优化mysql配置和优化mysql配置和优化mysql配置和优化mysql配置和优化

立即下载
关闭
img

spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
点击完成任务获取下载码
输入下载码
为了良好体验,不建议使用迅雷下载
img

ViewPagerFragment 优化

会员到期时间: 剩余下载个数: 剩余C币: 剩余积分:0
为了良好体验,不建议使用迅雷下载
VIP下载
您今日下载次数已达上限(为了良好下载体验及使用,每位用户24小时之内最多可下载20个资源)

积分不足!

资源所需积分/C币 当前拥有积分
您可以选择
开通VIP
4000万
程序员的必选
600万
绿色安全资源
现在开通
立省522元
或者
购买C币兑换积分 C币抽奖
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
为了良好体验,不建议使用迅雷下载
确认下载
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
为了良好体验,不建议使用迅雷下载
VIP和C币套餐优惠
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
确认下载
下载
您还未下载过该资源
无法举报自己的资源

兑换成功

你当前的下载分为234开始下载资源
你还不是VIP会员
开通VIP会员权限,免积分下载
立即开通

你下载资源过于频繁,请输入验证码

您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:webmaster@csdn.net!

举报

若举报审核通过,可返还被扣除的积分

  • 举报人:
  • 被举报人:
  • *类型:
    • *投诉人姓名:
    • *投诉人联系方式:
    • *版权证明:
  • *详细原因: