Android 개발 실전 의 멋 진 ViewPager 안내 페이지
다음은 DIY 하 겠 습 니 다.
영상 업로드 가 귀찮아 서 캡 처 했 어 요.
우선 효과 도 를 살 펴 보 자.
작은 점 을 누 르 면 자 유 롭 게 전환 할 수 있 고 미끄럼 도 자 유 롭 게 전환 할 수 있 으 며 마지막 네 비게 이 션 페이지 에 클릭 점프 를 추가 했다.
시작 안내 페이지:
1.필요 한 그림 을 채집 하여 drawable 파일 에 넣 기
2.모든 네 비게 이 션 페이지 의 보 기 를 초기 화 합 니 다.
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.yyp.myapp.Adapter.ViewPagerAdapter;
import com.yyp.myapp.R;
import java.util.ArrayList;
import java.util.List;
public class ViewPagerActivity extends Activity implements ViewPager.OnPageChangeListener,View.OnClickListener {
private ViewPager viewPager;
private ImageView[] pots;
private List<View> views;
private TextView et_into_login;
private ViewPagerAdapter adapter;
//
private int[] guideImages = {R.drawable.guide1,R.drawable.guide2,R.drawable.guide3};
private int index;
private LinearLayout layout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_pager);
initView();
initData();
}
// ViewPager
public void initView()
{
layout = (LinearLayout) this.findViewById(R.id.ll_pots);
viewPager = (ViewPager) this.findViewById(R.id.viewpager);
et_into_login = (TextView) this.findViewById(R.id.et_into_login);
views = new ArrayList<View>();
adapter = new ViewPagerAdapter(views);
pots = new ImageView[guideImages.length];
Log.e("ll_viewpager", layout + "");
}
//
public void initData()
{
//
android.view.ViewGroup.LayoutParams layoutParams = new android.view.ViewGroup.LayoutParams(android.view.ViewGroup.LayoutParams.MATCH_PARENT,android.view.ViewGroup.LayoutParams.MATCH_PARENT);
for(int i:guideImages)
{
ImageView imageView = new ImageView(this);
imageView.setImageResource(i); // id ,
imageView.setLayoutParams(layoutParams);
views.add(imageView);
}
initPot();
viewPager.setAdapter(adapter);
viewPager.setOnPageChangeListener(this);
}
//
public void initPot()
{
//
for(int i=0;i<layout.getChildCount();i++)
{
//
pots[i] = (ImageView) layout.getChildAt(i);
pots[i].setImageResource(R.drawable.pot5);
//
pots[i].setOnClickListener(this);
pots[i].setTag(i);
}
//
index = 0;
pots[index].setImageResource(R.drawable.pot1);
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageSelected(int position) {
// TODO Auto-generated method stub
SetIndex(position);
//
if(position==2){
et_into_login.setVisibility(View.VISIBLE);
}else{
et_into_login.setVisibility(View.INVISIBLE);
}
}
public void SetIndex(int position) {
// TODO Auto-generated method stub
for(int i=0;i<layout.getChildCount();i++)
{
//
pots[i] = (ImageView) layout.getChildAt(i);
pots[i].setImageResource(R.drawable.pot5);
}
//
pots[position].setImageResource(R.drawable.pot1);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int i = (Integer) v.getTag();
// i
viewPager.setCurrentItem(i);
if(i==2){
et_into_login.setVisibility(View.VISIBLE);
}
}
//
public void goLogin(View v){
Intent goLogin = new Intent(this,LoginActivity.class);
startActivity(goLogin);
finish();
}
}
3.초기 화 기간 에 사용자 정의 ViewPager 어댑터
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import java.util.List;
/**
* Created by yyp on 2015/10/25.
*/
public class ViewPagerAdapter extends PagerAdapter {
//
private List<View> views;
public ViewPagerAdapter(List<View> views)
{
this.views = views;
}
//
@Override
public int getCount() {
//
return views.size();
}
// position
@Override
public Object instantiateItem(ViewGroup container, int position) {
((ViewGroup)container).addView(views.get(position));
return views.get(position);
}
//
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0==arg1;
}
//
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(views.get(position));
}
}
사용자 체험 에 있어 서 우리 가 발굴 할 수 있 는 것 은 아직도 많다.다음 에 유행 하 는 보 기 는 우리 가 만 든 것 이 라 고 할 수 없다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Android ViewPager로 무한 스크롤 가능조금 조사해 보았더니, 라고 하는 기사가 돈피샤였습니다. 영어 기사라고 하는 것과, 데이터의 갱신에 대해서는 접하고 있지 않다(조금 유스 케이스가 다르다), 라고 하는 것으로 여기에 정리해 보겠습니다. ViewPag...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.