我手中有一段现成的程序。就是几张图片。利用手势操作来回可以拖动的效果。
现需要将此程序再增加一个幻灯片自动滚动播放的效果。
还请各位帮帮忙。小弟刚接触android不到三天。很多都不熟悉。领导赶鸭子上架急着要求完成此功能。
求救,求救~~~或者哪位有此类幻灯片效果的程序告诉小弟也行。万分感激。
一下为相关代码。public class SwitchViewDemoActivity extends Activity implements OnViewChangeListener, OnClickListener{
    /** Called when the activity is first created. */
private MyScrollLayout mScrollLayout;

private ImageView[] mImageViews;

private int mViewCount;

private int mCurSel;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        init();
    }
    
        private void init()
    {
     mScrollLayout = (MyScrollLayout) findViewById(R.id.ScrollLayout);
    
     LinearLayout linearLayout = (LinearLayout) findViewById(R.id.llayout);
    
     mViewCount = mScrollLayout.getChildCount();
     mImageViews = new ImageView[mViewCount];
    
     for(int i = 0; i < mViewCount; i++)
     {
     mImageViews[i] = (ImageView) linearLayout.getChildAt(i);
     mImageViews[i].setEnabled(true);
     mImageViews[i].setOnClickListener(this);
     mImageViews[i].setTag(i);
     }
    
     mCurSel = 0;
     mImageViews[mCurSel].setEnabled(false);
    
     mScrollLayout.SetOnViewChangeListener(this);
    }
    private void setCurPoint(int index)
    {
     if (index < 0 || index > mViewCount - 1 || mCurSel == index)
     {
     return ;
     }
    
     mImageViews[mCurSel].setEnabled(true);
     mImageViews[index].setEnabled(false);
    
     mCurSel = index;
    }
public void OnViewChange(int view) {
// TODO Auto-generated method stub
setCurPoint(view);
} public void onClick(View v) {
// TODO Auto-generated method stub
int pos = (Integer)(v.getTag());
setCurPoint(pos);
mScrollLayout.snapToScreen(pos);
}

解决方案 »

  1.   

    public class ViewPageActivity extends Activity implements android.view.View.OnClickListener, OnPageChangeListener{ private ViewPager mViewPager; private ViewPageAdapter mPageAdapter;

    private List<View> mListViews;

    private final static int viewBackground[] = {R.drawable.guide01,
    R.drawable.guide02,
    R.drawable.guide03,
    R.drawable.guide04,
    R.drawable.guide05,};


    private ImageView[] mImageViews;

    private int mViewCount;

    private int mCurSel;

    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main_viewpage_layout);
            
          
            initViewPage();  
           
            init();
        }

    private void initViewPage()
    {
    mListViews = new ArrayList<View>();
            LayoutInflater mLayoutInflater = getLayoutInflater();
            
            mViewCount = viewBackground.length;       
            for(int i = 0; i < mViewCount; i++)
            {
             View view = mLayoutInflater.inflate(R.layout.layout, null);
             view.setBackgroundResource(viewBackground[i]);
             mListViews.add(view);
            }
                    
            mPageAdapter = new ViewPageAdapter(mListViews);
            mViewPager = (ViewPager) findViewById(R.id.viewpager);
            mViewPager.setAdapter(mPageAdapter);
            mViewPager.setOnPageChangeListener(this);
    }


        private void init()
        {
         LinearLayout linearLayout = (LinearLayout) findViewById(R.id.llayout);
        
         mImageViews = new ImageView[mViewCount];
        
         for(int i = 0; i < mViewCount; i++)
         {
         mImageViews[i] = (ImageView) linearLayout.getChildAt(i);
         mImageViews[i].setEnabled(true);
         mImageViews[i].setOnClickListener(this);
         mImageViews[i].setTag(i);
         }
        
         mCurSel = 0;
         mImageViews[mCurSel].setEnabled(false);
        
        }
        
        private void setCurView(int pos)
        {
         if (pos < 0 || pos >= mViewCount)
         {
         return ;
         }     mViewPager.setCurrentItem(pos);
        }    
        private void setCurPoint(int index)
        {
         if (index < 0 || index > mViewCount - 1 || mCurSel == index)
         {
         return ;
         }
        
        
         mImageViews[mCurSel].setEnabled(true);
         mImageViews[index].setEnabled(false);
        
         mCurSel = index;
        }
        
         public void onClick(View v) {
    // TODO Auto-generated method stub
    int pos = (Integer)v.getTag();
    setCurView(pos);
    setCurPoint(pos);
    }
    public void onPageScrollStateChanged(int arg0) {
    // TODO Auto-generated method stub

    }
    public void onPageScrolled(int arg0, float arg1, int arg2) {
    // TODO Auto-generated method stub

    }
    public void onPageSelected(int arg0) {
    // TODO Auto-generated method stub
    setCurPoint(arg0);
    }public class ViewPageAdapter extends PagerAdapter{ private final static String  TAG = "MyPagerAdapter";

    List<View> mViewList;

    public ViewPageAdapter(List<View> viewList)
    {
    mViewList = viewList;
    }


    @Override
    public int getCount() {
    // TODO Auto-generated method stub
    if (mViewList != null)
    {
    return mViewList.size();
    }

    return 0;
    }

    @Override
    public Object instantiateItem(View view, int index) {
    // TODO Auto-generated method stub

    ((ViewPager) view).addView(mViewList.get(index), 0);

    return mViewList.get(index);
    }

    @Override
    public void destroyItem(View view, int position, Object arg2) {
    // TODO Auto-generated method stub

    ((ViewPager) view).removeView(mViewList.get(position));
    } @Override
    public void finishUpdate(View arg0) {
    // TODO Auto-generated method stub }
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
        xmlns:android="http://schemas.android.com/apk/res/android">    
    <android.support.v4.view.ViewPager
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:id="@+id/viewpager">    
    </android.support.v4.view.ViewPager>
        
        
        <LinearLayout 
         android:orientation="horizontal" 
         android:id="@+id/llayout" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_marginBottom="24.0dip" 
         android:layout_alignParentBottom="true" 
         android:layout_centerHorizontal="true">
        
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:clickable="true"
                android:padding="15.0dip"
                android:src="@drawable/guide_round" />        <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:clickable="true"
                android:padding="15.0dip"
                android:src="@drawable/guide_round" />        <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:clickable="true"
                android:padding="15.0dip"
                android:src="@drawable/guide_round" />        <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:clickable="true"
                android:padding="15.0dip"
                android:src="@drawable/guide_round" />        <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:clickable="true"
                android:padding="15.0dip"
                android:src="@drawable/guide_round" />    </LinearLayout>
        
    </RelativeLayout><?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >    <com.genius.scroll.MyScrollLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/ScrollLayout"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >        <FrameLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:background="@drawable/guide01" >
            </FrameLayout>        <FrameLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:background="@drawable/guide02" >
            </FrameLayout>        <FrameLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:background="@drawable/guide03" >
            </FrameLayout>        <FrameLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:background="@drawable/guide04" >
            </FrameLayout>        <FrameLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:background="@drawable/guide05" >
            </FrameLayout>
        </com.genius.scroll.MyScrollLayout>    <LinearLayout
            android:id="@+id/llayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="24.0dip"
            android:orientation="horizontal" >        <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:clickable="true"
                android:padding="15.0dip"
                android:src="@drawable/guide_round" />        <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:clickable="true"
                android:padding="15.0dip"
                android:src="@drawable/guide_round" />        <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:clickable="true"
                android:padding="15.0dip"
                android:src="@drawable/guide_round" />        <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:clickable="true"
                android:padding="15.0dip"
                android:src="@drawable/guide_round" />        <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:clickable="true"
                android:padding="15.0dip"
                android:src="@drawable/guide_round" />
        </LinearLayout></RelativeLayout>
      

  2.   

    自动播放的话,用viewflipper吧。代码量很少,就可以搞定