안 드 로 이 드 개발 의 미끄럼 사진 윤 방 제목 초점
구 글 이 제공 하 는 v4 패키지,ViewPager
레이아웃 파일 에 먼저
레이아웃 파일 에 제목 설명 부분 을 배치 합 니 다.
선형 레이아웃,세로 배열,배경 색 검은색 반투명,이 레이아웃 은 위의 ViewPager 아래쪽 과 정렬 되 어 있 습 니 다layout_alignBottom=”@id/xxx"
작은 부분,빈 LinearLayout 먼저 놓 치기,id 는 llpoints 코드 에 채 우기
ViewPager 대상 가 져 오기
ViewPager 대상 의 setAdapter()방법 을 호출 합 니 다.인자:PagerAdapter 대상
PagerAdapter 는 추상 류 이기 때문에 MyPagerAdapter 계승 PagerAdapter 를 정의 하여 다음 과 같은 방법 을 실현 합 니 다.
getCount()방법 을 다시 쓰 고 윤방 의 개 수 를 되 돌려 줍 니 다.
isViewFromObject()방법 을 다시 쓰 고 불 값 을 되 돌려 줍 니 다.
instantiate Item()방법 을 다시 쓰 고 현재 view 대상 을 ViewGroup 대상 에 추가 하여 현재 대상 으로 되 돌려 줍 니 다.
destroy Item()방법 을 다시 쓰 고 현재 container 에서 지정 한 위치(position)의 View 를 삭제 합 니 다.
설명 제목 문자열 전환
String[]배열 을 정의 하고 제목 을 저장 합 니 다.
ViewPager 대상 의 setOnPager ChangeListener()방법 을 호출 합 니 다.인자:OnPager ChangeListener 대상
익명 내부 클래스 구현,다음 방법 다시 쓰기
onPageSelected()방법,페이지 전환 후 호출,매개 변수 전달,int 색인
onPageScrolled()방법,페이지 가 굴 러 가 고 있 을 때
onPageScrollStateChanged()방법,페이지 스크롤 상태 가 바 뀌 었 을 때
작은 아이콘 부분
두 개의 shape 파일 을 새로 만 들 고 xml 로 두 개의 원점 을 그립 니 다.
노드
사이즈 노드
색상 노드
정상 적 인 상황 에서 회색 점,초점 일 때 흰색 점,두 xm 파일 의 색상 이 다 릅 니 다.
point.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<size
android:height="4dp"
android:width="4dp" />
<solid android:color="#aaffffff"/>
</shape>
point_write.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<size
android:height="4dp"
android:width="4dp" />
<solid android:color="#ffffffff"/>
</shape>
selector 파일 을 새로 만 듭 니 다.그림 enable 일 때 흰색 점,사용 할 수 없 을 때 회색 점,상태 가 다른 그림 입 니 다.point_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/point" android:state_enabled="false"></item>
<item android:drawable="@drawable/point_write" android:state_enabled="true"></item>
</selector>
큰 그림 의 개 수 를 순환 하여 ImageView 대상 을 만 듭 니 다.ImageView 대상 setImageResource()방법 호출,자원 설정,파라미터:selector 파일
ImageView 대상 의 setLayoutParams()방법 을 호출 하여 작은 아이콘 ImageView 대상 에 margin 값 을 추가 합 니 다.매개 변수:LayoutParams 대상,LinearLayout.LayoutParams 대상 을 가 져 오고 LayoutParams 대상 의 rightMargin()방법 을 호출 하여 margin 값 을 설정 합 니 다.
ImageView 대상 의 setEnabled()방법 을 호출 하여 사용 가능 한 지 설정 합 니 다.인자:불 값
LinearLayout 대상 을 가 져 오고 LinearLayout 대상 의 addView()방법 을 호출 하여 작은 아이콘 의 보 기 를 채 웁 니 다.인자:ImageView 대상
기본 첫 번 째 는 초점 입 니 다.그림 이 미 끄 러 지면 서 초점 이 바 뀌 었 습 니 다.
package com.tsh.myviewpager;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.support.v.view.PagerAdapter;
import android.support.v.view.ViewPager;
import android.support.v.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MainActivity extends Activity {
private ViewPager vp_banner;
private LinearLayout ll_points;
private TextView tv_title;
private List<View> banners;
private String[] titles=new String[]{
" ",
" ",
" "
};
private List<ImageView> points=new ArrayList<ImageView>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//
vp_banner = (ViewPager) findViewById(R.id.vp_banner);
ll_points = (LinearLayout) findViewById(R.id.ll_points);
tv_title = (TextView) findViewById(R.id.tv_title);
// banner
banners = new ArrayList<>();
ImageView img = new ImageView(this);
img.setImageResource(R.drawable.a);
banners.add(img);
ImageView img = new ImageView(this);
img.setImageResource(R.drawable.b);
banners.add(img);
ImageView img = new ImageView(this);
img.setImageResource(R.drawable.c);
banners.add(img);
//
ll_points=(LinearLayout) findViewById(R.id.ll_points);
for(int i=;i<banners.size();i++){
ImageView image=new ImageView(this);
image.setImageResource(R.drawable.point_selector);
LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(, );
params.rightMargin=;
image.setLayoutParams(params);
ll_points.addView(image);
if(i==){
image.setEnabled(true);
}else{
image.setEnabled(false);
}
points.add(image);
}
//
vp_banner.setAdapter(new MyPagerAdapter());
vp_banner.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg) {
tv_title.setText(titles[arg]);
//
for(ImageView point:points){
point.setEnabled(false);
}
points.get(arg).setEnabled(true);
}
@Override
public void onPageScrolled(int arg, float arg, int arg) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg) {
// TODO Auto-generated method stub
}
});
}
private class MyPagerAdapter extends PagerAdapter {
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(banners.get(position));
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(banners.get(position));
return banners.get(position);
}
@Override
public int getCount() {
return banners.size();
}
@Override
public boolean isViewFromObject(View arg, Object arg) {
return arg == arg;
}
}
}
위 에서 말 한 것 은 소 편 이 소개 한 안 드 로 이 드 개발 의 미끄럼 사진 윤 방 제목 초점 에 관 한 지식 입 니 다.도움 이 되 셨 으 면 좋 겠 습 니 다!이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.