Android 는 자동 으로 그림 재생 기능 을 실현 합 니 다.

5567 단어 Android자동 재생
본 논문 의 사례 는 안 드 로 이 드 가 자동 으로 그림 을 재생 하 는 기능 을 실현 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
첫 번 째 방법:첫 장 으로 되 돌아 가기
효과 도

두 번 째 방식:무한 순환
효과 그림:


소스 코드
논리 코드--MainActivity

package com.example.week4_day4_viewpager2; 
 
import java.util.ArrayList; 
import java.util.List; 
 
import android.R.integer; 
import android.os.Bundle; 
import android.os.Handler; 
import android.app.Activity; 
import android.support.v4.view.ViewPager; 
import android.view.Menu; 
import android.widget.ImageView; 
 
public class MainActivity extends Activity { 
 
  private ViewPager viewPager; 
  //     
  private int[] images = { R.drawable.image1, R.drawable.image2, 
      R.drawable.image3 }; 
  //          
  List<ImageView> list; 
 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    viewPager = (ViewPager) findViewById(R.id.viewpager); 
    //    list 
    list = new ArrayList<ImageView>(); 
    for (int i = 0; i < images.length; i++) { 
      ImageView imageView = new ImageView(MainActivity.this); 
      imageView.setImageResource(images[i]); 
      list.add(imageView); 
    } 
    //       
    viewPager.setAdapter(new MyViewPagerAdapter(MainActivity.this, list)); 
    //   3    ,  id=2     , 
    viewPager.setCurrentItem(Integer.MAX_VALUE / 2 - Integer.MAX_VALUE / 2 
        % list.size());//   viewPager       
    //            
    handler.sendEmptyMessageDelayed(1, 2000); 
  } 
 
  //        ,     
  private Handler handler = new Handler() { 
    public void handleMessage(android.os.Message msg) { 
      /** 
       *      ,        ,             
       *         :         ,       , 3  ,           2 ,       1  
       */ 
//      int i = viewPager.getCurrentItem();//   item 
//      if (i == list.size() - 1) {//             
//      // false:       
//      viewPager.setCurrentItem(0, true);//      item 
//      } else { 
//      viewPager.setCurrentItem(i + 1, true); 
//      } 
      /** 
       *      ,      ,        ,       
       */ 
      viewPager.setCurrentItem(viewPager.getCurrentItem() + 1); 
 
      sendEmptyMessageDelayed(1, 2000); 
    }; 
  }; 
} 
논리 코드-사용자 정의 어댑터

package com.example.week4_day4_viewpager2; 
 
import java.util.List; 
 
import android.content.Context; 
import android.support.v4.view.PagerAdapter; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ImageView; 
 
public class MyViewPagerAdapter extends PagerAdapter{ 
 
  private Context context; 
  private List<ImageView> list; 
   
  public MyViewPagerAdapter(Context context, List<ImageView> list) { 
    super(); 
    this.context = context; 
    this.list = list; 
  } 
 
  @Override 
  public int getCount() { 
    // TODO Auto-generated method stub 
    return Integer.MAX_VALUE;//  viewPager  N    
    //return list.size(); 
  } 
   
  @Override 
  public Object instantiateItem(ViewGroup container, int position) { 
    //   3   ,  id=2 , id=0 ,     
    container.addView(list.get(position%list.size())); 
    return list.get(position%list.size()); 
    //return list.get(position); 
  } 
  @Override 
  public void destroyItem(ViewGroup container, int position, Object object) { 
    // TODO Auto-generated method stub 
    container.removeView(list.get(position%list.size())); 
    //container.removeView(list.get(position)); 
    //super.destroyItem(container, position, object); 
  } 
 
  @Override 
  public boolean isViewFromObject(View arg0, Object arg1) { 
    // TODO Auto-generated method stub 
    return arg0==arg1; 
  } 
 
}  
레이아웃 파일

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  xmlns:tools="http://schemas.android.com/tools" 
  android:layout_width="match_parent" 
  android:layout_height="match_parent" 
  android:paddingBottom="@dimen/activity_vertical_margin" 
  android:paddingLeft="@dimen/activity_horizontal_margin" 
  android:paddingRight="@dimen/activity_horizontal_margin" 
  android:paddingTop="@dimen/activity_vertical_margin" 
  tools:context=".MainActivity" > 
 
  <android.support.v4.view.ViewPager 
    android:id="@+id/viewpager" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
   /> 
 
</RelativeLayout> 
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기