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>
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.