Android 는 viewpager 를 사용 하여 자동 무한 윤파 도 를 실현 합 니 다.
대략 실현 절 차 를 말 해 보 세 요.보통 우 리 는 두 가지 가 있 습 니 다.하 나 는 viewpager+를 커서 로 하 는 점 입 니 다.다른 하 나 는 viewpager 를 다시 쓰 는 것 이다.
효과 그림:
1.1 레이아웃,viewpager+viewgroup 을 직접 사용 하면 됩 니 다.
<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"
tools:context="com.maxence.viewpager.MainActivity" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="220dp" >
<android.support.v4.view.ViewPager
android:id="@+id/vp_pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- viewgroup add -->
<LinearLayout
android:id="@+id/ll_container"
android:layout_width="match_parent"
android:layout_height="30dp"
android:gravity="center"
android:orientation="horizontal"
android:layout_alignParentBottom="true"
></LinearLayout>
</RelativeLayout>
</RelativeLayout>
1.2 동적 add 의 점,일반적인 흰색 점:pointnormal.xml。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<stroke
android:width="1dip"
android:color="#ffffff"/>
<solid android:color="#ffffff" />
</shape>
붉 은 점 으로 선택:pointselect.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<stroke
android:width="1dp"
android:color="#ff0000"
/>
<solid android:color="#ff0000"/>
</shape>
1.그림 과 커서 를 동적 으로 추가 합 니 다.
/**
*
*/
private void initData() {
mContext = this;
int[] i = new int[] { R.drawable.bg_lunbo1, R.drawable.bg_lunbo2, R.drawable.bg_lunbo3, R.drawable.bg_lunbo4 };
al = new ArrayList<ImageView>();
for (int x = 0; x < i.length; x++) {
ImageView iv = new ImageView(mContext);
iv.setBackgroundResource(i[x]);
al.add(iv);
View v=new View(mContext);
v.setBackgroundResource(R.drawable.point_normal);
//
LayoutParams layoutParams = new LinearLayout.LayoutParams(15, 15);
layoutParams.leftMargin = 30;
ll_container.addView(v,layoutParams);
}
vp_pager.setAdapter(new Myadapter());
vp_pager.setOnPageChangeListener(this);
vp_pager.setCurrentItem(al.size()*1000); //
ll_container.getChildAt(0).setBackgroundResource(R.drawable.point_select);
prePosition=0;
}
1.4 viewpgaer 는 Pager Adapter 를 연결 하면 사진 이 미 끄 러 지고 무한 미 끄 러 집 니 다.
class Myadapter extends PagerAdapter {
@Override
public int getCount() {
return Integer.MAX_VALUE; //
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
int position1=position % al.size();
ImageView imageView = al.get(position1);
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View)object);
}
}
1.5 커서 를 실현 하 는 것 은 바로 그림 을 미 끄 러 뜨리 는 것 이 고 아래 의 붉 은 점도 이에 따라 변화 한다.
vp_pager.setOnPageChangeListener(this);
@Override
public void onPageScrollStateChanged(int arg0) {
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageSelected(int position) {
int newPosition = position % al.size();
ll_container.getChildAt(newPosition).setBackgroundResource(R.drawable.point_select);
ll_container.getChildAt(prePosition).setBackgroundResource(R.drawable.point_normal);
prePosition=newPosition;
}
1.6 자동 폴 링 실현.하나의 스 레 드 를 열 면 됩 니 다.
/**
*
*/
private void pollint() {
pThread = new PollThread();
pThread.start();
}
class PollThread extends Thread{
@Override
public void run() {
while (poll){
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
4.567914.이렇게 하면 해결 되 고 하나의 방향 만 제공 합 니 다.자신 이 확장 할 수 있 습 니 다.예 를 들 어 viewpager 를 다시 쓰 고 기능 을 내부 에 밀봉 하면 됩 니 다.총결산
위 에서 말 한 것 은 소 편 이 소개 한 안 드 로 이 드 가 viewpager 를 사용 하여 자동 무한 윤방송 도 를 실현 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Android 는 viewpager 를 사용 하여 자동 무한 윤파 도 를 실현 합 니 다.대략 실현 절 차 를 말 해 보 세 요.보통 우 리 는 두 가지 가 있 습 니 다.하 나 는 viewpager+를 커서 로 하 는 점 입 니 다.다른 하 나 는 viewpager 를 다시 쓰 는 것 이다. 1.5 커...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.