이번 시간에는 ViewPager2를 이용해서
좌우, 위아래로 갤러리 느낌을 만들어
보겠습니다.
1. 실행화면
2. ViewPager2 라이브러리 등록
3. 갤러리 화면 만들기 item_layout.xml
4. 화면과 데이터 연결 Adapter 만들기
5. 메인 화면 구성 activity_main.xml
6. 메인 코드 구현 MainActivity.java
build.gradle(Module: 앱이름.app)
implementation 'androidx.viewpager2:viewpager2:1.1.0-beta01'
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:scaleType="centerCrop">
</ImageView>
2022.01.01 - [안드로이드] - [안드로이드 스튜디오] 레이아웃 추가하는 방법
public class ItemAdapter extends RecyclerView.Adapter<ItemAdapter.ViewHolder>{
int[] images;
public ItemAdapter(int[] images) {
this.images = images;
}
@NonNull
@Override
public ItemAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_layout, viewGroup, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ItemAdapter.ViewHolder holder, int position) {
holder.imageView.setImageResource(images[position]);
}
@Override
public int getItemCount() {
return images.length;
}
public class ViewHolder extends RecyclerView.ViewHolder{
ImageView imageView;
public ViewHolder(@NonNull View itemView) {
super(itemView);
imageView = itemView.findViewById(R.id.imageView);
}
}
}
2021.12.31 - [안드로이드] - [안드로이드 스튜디오] 자바 클래스 생성하는 방법
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:id="@+id/textOrientation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="가로방향"
android:textColor="@color/black"
android:textSize="50dp" />
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPage2"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_gravity="center"
android:layout_marginTop="50dp"
android:orientation="horizontal" />
<androidx.appcompat.widget.AppCompatButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:onClick="changeOrientation"
android:text="방향 바꾸기" />
</LinearLayout>
public class MainActivity extends AppCompatActivity {
ViewPager2 viewPager2;
int[] images = {R.drawable.dog1, R.drawable.dog2, R.drawable.dog3,
R.drawable.dog4};
ItemAdapter itemAdapter;
boolean orientationState = true; //기본이 가로
TextView textOrientation;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager2 = findViewById(R.id.viewPage2);
itemAdapter = new ItemAdapter(images);
textOrientation = findViewById(R.id.textOrientation);
viewPager2.setAdapter(itemAdapter);
}
/**
* 방향 바꾸기
* @param view 뷰
*/
public void changeOrientation(View view) {
if(orientationState){
viewPager2.setOrientation(viewPager2.ORIENTATION_VERTICAL); // 세로
orientationState = false;
textOrientation.setText("세로방향");
}else{
viewPager2.setOrientation(viewPager2.ORIENTATION_HORIZONTAL); //가로
orientationState = true;
textOrientation.setText("가로방향");
}
}
}
이미지 res -> drawable
[안드로이드] 밀어서 화면 변경 ViewPager2 화면 변경하면 표시(Indicator) 해주는 방법 (0) | 2022.01.08 |
---|---|
[안드로이드 스튜디오] 프래그먼트(Fragemnt) 만드는 방법 (0) | 2022.01.08 |
[안드로이드] AlertDialog Custom 쉽게 만드는 방법 (0) | 2022.01.06 |
[안드로이드] 테이블 모양 그리드뷰(GridView) 쉽게 만드는 방법 (0) | 2022.01.05 |
[안드로이드] RecyclerView Item Animation 왼쪽, 오른쪽, 위, 아래 방향별로 효과 주는 방법 (0) | 2022.01.04 |
댓글 영역