使用ViewPager用使用android的兼容包,android-support-v4.jar。

工程源代码下载:点击下载

在res/layout下建立三个文件first.xml,second.xml,third.xml,随便加入一些控件

Android使用ViewPager实现左右滑动效果_第1张图片

main.xml文件的布局如下:

<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <android.support.v4.view.ViewPager        android:id="@+id/viewpager"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center"        />   <RelativeLayout        android:layout_width="fill_parent"       android:layout_height="wrap_content"       >    <LinearLayout        android:id="@+id/group"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"          android:layout_marginBottom="30dp"        android:orientation="horizontal"        android:gravity="center_horizontal"       />             </RelativeLayout></FrameLayout>


在LinaerLayout外面套一个RelativeLayout是为了使得

android:layout_alignParentBottom="true"这行代码有用

LinaerLayout主要是布局下面的小圆点。要使用两张图片R.drawable.page_indicator_focused和R.drawable.page_indicator。

在主Activity中的代码没什么好说的直接贴上来

package com.zhycheng.viewpage;import java.util.ArrayList;import android.app.Activity;import android.os.Bundle;import android.os.Parcelable;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.ViewGroup.LayoutParams;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.Toast;public class ViewPageActivity extends Activity implements OnPageChangeListener {ViewPager mvp;ImageView []images;ImageView iv;LinearLayout ll;ViewGroup vg;    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //        final ArrayList<View> aViews=new ArrayList<View>();        LayoutInflater lf=LayoutInflater.from(this);        vg=(ViewGroup) lf.inflate(R.layout.main, null);        View v1=lf.inflate(R.layout.first, null);        View v2=lf.inflate(R.layout.second, null);        View v3=lf.inflate(R.layout.third, null);        aViews.add(v1);        aViews.add(v2);        aViews.add(v3);        mvp=(ViewPager) vg.findViewById(R.id.viewpager);        ll=(LinearLayout) vg.findViewById(R.id.group);                       images=new ImageView[aViews.size()];        for(int i=0;i<images.length;i++)        {        iv=new ImageView(this);        iv.setLayoutParams(new LayoutParams(20,20));        iv.setPadding(20, 0, 20, 0);        if(i==0)        {        iv.setBackgroundResource(R.drawable.page_indicator_focused);        }        else        {        iv.setBackgroundResource(R.drawable.page_indicator);        }        images[i]=iv;        ll.addView(images[i]);        }                                               PagerAdapter pa=new PagerAdapter(){@Overridepublic int getCount() {// TODO Auto-generated method stubreturn aViews.size();}@Overridepublic void destroyItem(View container, int position, Object object) {// TODO Auto-generated method stub((ViewPager)container).removeView(aViews.get(position));}@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {// TODO Auto-generated method stubreturn arg0==arg1;}@Overridepublic void finishUpdate(View arg0) {// TODO Auto-generated method stub}@Overridepublic Object instantiateItem(View arg0, int arg1) {// TODO Auto-generated method stub((ViewPager)arg0).addView(aViews.get(arg1),0);return aViews.get(arg1);}@Overridepublic void restoreState(Parcelable arg0, ClassLoader arg1) {// TODO Auto-generated method stub}@Overridepublic Parcelable saveState() {// TODO Auto-generated method stubreturn null;}@Overridepublic void startUpdate(View arg0) {// TODO Auto-generated method stub}};setContentView(vg);        mvp.setAdapter(pa);        mvp.setOnPageChangeListener(this);     }@Overridepublic void onPageScrollStateChanged(int arg0) {// TODO Auto-generated method stub//Toast.makeText(this, "onPageScrollStateChanged"+arg0, 1000).show();}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {// TODO Auto-generated method stub//Toast.makeText(this, "onPageScrolled", 1000).show();}@Overridepublic void onPageSelected(int arg0) {// TODO Auto-generated method stubfor(int i=0;i<images.length;i++){if(i==arg0){images[i].setBackgroundResource(R.drawable.page_indicator_focused);}else{images[i].setBackgroundResource(R.drawable.page_indicator);}}}}


更多相关文章

  1. Android中使用代码执行shell命令
  2. Android_判断文件是否存在并创建代码
  3. Android / iOS 静态代码扫描工具调研
  4. Android 项目打包成apk文件
  5. Android 内部API (android.internal)和隐藏代码(@hide)概述
  6. Android一些关于分辨率和布局的设置
  7. Android从远程服务器下载文件到本地sd卡中

随机推荐

  1. Android 多个APK共享数据(Shared User ID
  2. Android获取SDCard路径/Android获取存储
  3. android语音识别方法一:使用intent调用语
  4. android 时间同步
  5. 通过ADB命令实现App的安装、卸载、覆盖
  6. Android Inflate()方法用途
  7. Android(安卓)进阶 教你打造 Android(安
  8. Android之Rxjava2.X 10————Rxjava源
  9. Android中Calendar类的用法总结
  10. android精品开源项目整理