Programmer:)
[AndroidStudio] ViewPager2 (ImageSlide/ Banner) 본문
반응형
1. build.gradle(:app) -> ViewPager2를 사용하기 위한 종속성 추가.
2. activity_main.xml -> viewPager2 추가
3. value.xml 파일을 생성하여 drawable 경로 data 값 입력.
4. activity_main.xml 과 연결된 스크립트
***TypedArray에 value.xml 의 bannerImages 데이터 값을 저장하여 사용 ***
5. ViewPager2 안에 넣을 ImageView.xml을 만들어줌.
6. 연결해줄 Adapter 스크립트 작성
package com.example.severtestjava01;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.List;
class ViewPager2Adapter extends RecyclerView.Adapter<ViewPager2Adapter.MyViewHolder>
{
private TypedArray mItems; //drawable 경로 데이터 저장 배열
private Context context;
public ViewPager2Adapter(Context context, TypedArray mItems)
{
this.context = context;
this.mItems = mItems;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
{
View view = LayoutInflater.from(context).inflate(R.layout.activity_viewpager2_image, parent, false);
return new MyViewHolder(view);
}
//이미지 교체 함수
@Override
public void onBindViewHolder(@NonNull ViewPager2Adapter.MyViewHolder holder, int position)
{
int index = position % mItems.length();
Log.d("MyAdapter", "onBindViewHolder index: " + index);
if(index >= mItems.length())
{
index = 0;
}
holder.imageView.setImageResource(mItems.getResourceId(index, -1));
}
@Override
public int getItemCount() {
return Integer.MAX_VALUE; //이미지 슬라이드를 무한으로 할 수 있음
}
public class MyViewHolder extends RecyclerView.ViewHolder
{
ImageView imageView;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
imageView = itemView.findViewById(R.id.imageView);
}
}
}
반응형
'DEV > AndroidStudio' 카테고리의 다른 글
[AndroidStudio] Fragment 분석 (0) | 2021.01.28 |
---|---|
[AndroidStudio] MenuBox 만들기(PopupMenu) (0) | 2021.01.22 |
[AndroidStudio] 단축키 (0) | 2020.12.29 |
[AndroidStudio] VideoPlay, VideoView / raw폴더 생성 (0) | 2020.12.28 |
[Android Studio] 서버 연동 [ JSONArray, Header] / volley 라이브러리 사용 (0) | 2020.12.22 |
Comments