Android 개발 에 서 는 ViewPager 를 사용 하여 그림 좌우 슬라이딩 전환 효 과 를 구현 합 니 다.
ViewPager 의 슬라이딩 page 로 xml 파일 3 개 를 사 용 했 습 니 다.레이아웃 은 모두 같 습 니 다.다음 중 하나 만 보 여 줍 니 다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@mipmap/view1"/>
</LinearLayout>
그림 을 표시 하 는 용기 로 ImageView 를 사 용 했 을 뿐 입 니 다.홈 페이지 레이아웃:
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout android:orientation="vertical"
android:layout_height="match_parent"
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<!-- -->
<android.support.v4.view.ViewPager
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/viewPager"></android.support.v4.view.ViewPager>
<!-- -->
<LinearLayout
android:orientation="horizontal"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/viewGroup"
android:layout_alignParentBottom="true"
android:gravity="center_horizontal"
android:layout_marginBottom="40dp"></LinearLayout>
</RelativeLayout>
다음은 주 함수 의 코드 입 니 다.
package com.yztc.lx.homework;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.ViewGroup.LayoutParams;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Lx on 2016/8/6.
*/
public class Layout1Activity extends Activity {
private ViewPager viewPager;
private PagerAdapter adapter;
private List<View> viewPages = new ArrayList<>();
// LinearLayout
private ViewGroup group;
private ImageView imageView;
// ImageVIew ,
private ImageView[] imageViews;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout1);
initView();
initPageAdapter();
initPointer();
initEvent();
}
// ,
private void initEvent() {
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new GuidePageChangeListener());
}
// ViewPager
private void initPageAdapter() {
/**
* page , LayoutInflater.inflate() , View
*/
LayoutInflater inflater = LayoutInflater.from(this);
View page1 = inflater.inflate(R.layout.page1, null);
View page2 = inflater.inflate(R.layout.page2, null);
View page3 = inflater.inflate(R.layout.page3, null);
//
viewPages.add(page1);
viewPages.add(page2);
viewPages.add(page3);
adapter = new PagerAdapter() {
//
@Override
public int getCount() {
return viewPages.size();
}
//
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(viewPages.get(position));
}
// , PagerAdapter ViewPager
@Override
public Object instantiateItem(ViewGroup container, int position) {
View view = viewPages.get(position);
container.addView(view);
return view;
}
};
}
//
private void initView() {
viewPager = (ViewPager) findViewById(R.id.viewPager);
group = (ViewGroup) findViewById(R.id.viewGroup);
}
//
private void initPointer() {
// new
imageViews = new ImageView[viewPages.size()];
for (int i = 0; i < imageViews.length; i++) {
imageView = new ImageView(this);
//
imageView.setLayoutParams(new LayoutParams(25, 25));
// padding
imageView.setPadding(20, 0, 20, 0);
imageViews[i] = imageView;
// page
if (i == 0) {
//
imageViews[i].setBackgroundResource(R.mipmap.page_indicator_focused);
/**
* java ImageView
* BackgroundResource
* ImageResource
*/
} else {
imageViews[i].setBackgroundResource(R.mipmap.page_indicator_unfocused);
}
group.addView(imageViews[i]);
}
}
//ViewPager onPageChangeListener , ViewPager page
public class GuidePageChangeListener implements ViewPager.OnPageChangeListener {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
//
@Override
public void onPageSelected(int position) {
// page, ImageView
for (int i = 0; i < imageViews.length; i++) {
imageViews[position].setBackgroundResource(R.mipmap.page_indicator_focused);
if (position != i) {
imageViews[i].setBackgroundResource(R.mipmap.page_indicator_unfocused);
}
}
}
// ,0-- 1-- 2--
@Override
public void onPageScrollStateChanged(int state) {
}
}
}
이렇게 하면 간단하게 그림 을 미 끄 러 뜨리 는 데모 가 완 성 됩 니 다.주의해 야 할 점 은 자바 코드 에서 ImageView 를 생 성 할 때 표 시 된 그림 을 설정 하려 면 setImageResource()방법 이 아 닌 setBackgroundResource()방법 을 사용 해 야 합 니 다.위 에서 말씀 드 린 것 은 편집장 님 께 서 소개 해 주신 안 드 로 이 드 개발 의 사용 ViewPager 가 이미지 좌우 슬라이딩 전환 효 과 를 실현 하 는 것 입 니 다.여러분 께 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주세요.편집장 님 께 서 신속하게 답 해 드 리 겠 습 니 다.그리고 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
jQuery 를 사용 하여 좌우 단 추 를 클릭 하여 슬라이딩 전환 을 실현 합 니 다.jQuery 를 사용 하여 좌우 슬라이딩 전환 효 과 를 실현: HTML 코드 는 다음 과 같 습 니 다. js 코드 는 다음 과 같 습 니 다: 위 에서 말씀 드 린 것 은 jQuery 를 사용 하여 마우스 로 좌...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.