5.13viewPager&&viewFlipper

来源:互联网 发布:淘宝客优惠券推广 编辑:程序博客网 时间:2024/06/07 05:06

(1)java中输出格式控制:

System.out.printf(“共有:%.1f吨\n”,totalGoods);

(2)Adapter里面的常用方法:

  1. getCount()返回所有页面的数量
  2. isViewFromObject(View arg0,Object arg1)判断视图是否由对象产生
  3. instantiateItem(ViewGroup container,int position)实例化界面
  4. destroyItem(ViewGroup container,int position,Object object)销毁页面
  5. getPagerTitle(int position)返回页面标题信息

(3)添加像微信一样的每页的页卡PagerTabStrip
1.在xml的ViewPager中加入PagerTabStrip

 <android.support.v4.view.ViewPager        android:id="@+id/pager"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center" >        <android.support.v4.view.PagerTabStrip            android:id="@+id/tab"            android:layout_width="wrap_content"            android:layout_height="wrap_content" >        </android.support.v4.view.PagerTabStrip>    </android.support.v4.view.ViewPager>

2.为ViewPager页卡设置标题

titleList=new ArrayList<String>();        titleList.add("第一页");        titleList.add("第二页");        titleList.add("第三页");        titleList.add("第四页");

3.在MyPagerAdapter中传入titleList

MyViewPagerAdapter adapter=new MyViewPagerAdapter(viewList, titleList);

在MyPagerAdapter中重载getPagerTitle

 @Override    public CharSequence getPageTitle(int position) {        // TODO Auto-generated method stub        return titleList.get(position);    }

4.为了美观,为PagerTabStrip设置一些属性

tab=(PagerTabStrip) findViewById(R.id.tab);        tab.setBackgroundColor(Color.YELLOW);        tab.setTabIndicatorColor(Color.BLUE);        tab.setDrawFullUnderline(false);        tab.setTextColor(Color.RED);

PagerTitleStrip功能与PagerTabStrip基本一样
(4)通过Fragment作为ViewPager的数据源
1.创建fragList

fragList=new ArrayList<Fragment>();        fragList.add(new Fragment1());        fragList.add(new Fragment2());        fragList.add(new Fragment3());        fragList.add(new Fragment4());

2.创建适配器(用fragment加载support.v4包,这时该类需继承自FragmentActivity)

MyFragmentPagerAdapter adapter2=new MyFragmentPagerAdapter(getSupportFragmentManager(), fragList, titleList);

3.初始化ViewPager

pager=(ViewPager) findViewById(R.id.pager);

4.ViewPager加载适配器

pager.setAdapter(adapter2);

FragmentPagerAdapter 所有fragment一起存在一起销毁
FragmentStatePagerAdapter 有单个fragment的创建和销毁

ViewPager可以设置setOnPagerChangedListener();
(5)ViewFlipper:实现屏幕切换动画效果,android系统自带的一个多页面管理控件,它可以实现子界面的自动切换

为ViewFlipper加入View:
1. 静态导入:在layout布局文件中直接导入;
2. 动态导入:addView()方法

ViewFlipper常用方法:
1.setInAnimation:设置View进入屏幕时候使用的动画;
2.setOutAnimation:设置View退出屏幕时候使用的动画;
3.showNext:显示ViewFlipper里面的下一个View;
4.showPrevious:显示ViewFlipper里面的上一个View;
5.setFlipInterval:设置View之间切换的时间间隔;
6.startFlipping:开始切换所有View,切换循环进行;
7.stopFlipping:停止View切换

image.setImageResource(resId);//只能显示图片原宽高
image.setBackgroundResource(resId);//铺满屏幕

步骤:
1.初始化ViewFlipper:

flipper = (ViewFlipper) findViewById(R.id.flipper);

2.动态导入的方式为ViewFlipper加入子View

flipper.addView(getImageView(R.drawable.pic1));        flipper.addView(getImageView(R.drawable.pic2));        flipper.addView(getImageView(R.drawable.pic3));        flipper.addView(getImageView(R.drawable.pic4));
private ImageView getImageView(int resId) {        ImageView image = new ImageView(this);        image.setBackgroundResource(resId);        return image;    }

3.为ViewFlipper添加动画效果、切换时间间隔和开始播放

flipper.setBackgroundColor(Color.BLACK);         flipper.setFlipInterval(5000);         flipper.setInAnimation(this, R.anim.anim_in);         flipper.setOutAnimation(this, R.anim.anim_out);         flipper.startFlipping();
0 0