자바 웹 개발자가 될거야/JAVA
[Android] ViewFlipper
whitz
2021. 12. 22. 11:53
< ViewFlipper >
- 여러화면을 한 화면에서 볼 수 있게 해주는 컨테이너
- 화면 전환이 쉽게 가능함
① .xml
<?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">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/btn1"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="이전 화면" />
<Button
android:id="@+id/btn2"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="다음 화면" />
</LinearLayout>
<ViewFlipper
android:id="@+id/vf1"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#85CC88"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#EDE387"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#E6827B"/>
</ViewFlipper>
</LinearLayout>
- weight : 가중치
· 버튼 2개를 각각 1로 주었더니 너비의 절반씩 차지함
② .java
package com.example.ex6_15;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ViewFlipper;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn1 = findViewById(R.id.btn1);
Button btn2 = findViewById(R.id.btn2);
ViewFlipper vf1 = findViewById(R.id.vf1);
vf1.setFlipInterval(500);
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//vf1.showNext();
vf1.stopFlipping();
}
});
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//vf1.showPrevious();
vf1.startFlipping();
}
});
}
}
- showNext(), showPrevious()로 두면 버튼을 클릭하면서 다음 화면, 이전 화면으로 넘김
- startFlipping(), stopFlipping()으로 두면 자동으로 슬라이드쇼처럼 화면이 넘어감
· 자동화면전환시 간격은 setFlipInterval()로 설정가능