티스토리 뷰


안녕하세요.
SOSOHANBOX 성단입니다.

안드로이드 자동 이미지 슬라이드를 하고 싶어서 직접 구현해보았습니다.

참고하시어 구현하는데 어려움이 없었으면 좋겠네요 :)

우선 이미지 자동 슬라이드를 구현할려면 ViewPager 보다는 ViewFlipper를 사용합니다.
아래와 같이 XML 작성해주시면 됩니다.
<ViewFlipper
android:id="@+id/image_slide"
android:layout_width="match_parent"
android:layout_height="200dp"/>


CardView 하위에 만들고 싶다면 아래와 같이 XML 작성해주세요.


<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp">

<ViewFlipper
android:id="@+id/image_slide"
android:layout_width="match_parent"
android:layout_height="200dp"/>

</android.support.v7.widget.CardView>


이제 java를 작성합시다.


전역 변수로 ViewFlipper 변수를 만들어줍니다.



ViewFlipper v_fllipper;


그리고 기본으로 작성해 있는 onCreate 함수 안에 drawable 안에 있는 이미지를 사용할 변수를 만들어줍니다.


int images[] = {
R.drawable.test_img01,
R.drawable.test_img02,
R.drawable.test_img03
};


저는 3장을 사용할꺼라 3개만 설정했습니다.

그 후 반복문을 사용해서 이미지 갯수 만큼 돌려줍니다.


v_fllipper = findViewById(R.id.image_slide);

for(int image : images) {
fllipperImages(image);
}


onCreate 함수 하단에 이미지 슬라이더 구현 함수를 작성해주세요.

아래 함수는 자동 이미지 슬라이드 간단하게 구현된 함수입니다.


// 이미지 슬라이더 구현 메서드
public void fllipperImages(int image) {
ImageView imageView = new ImageView(this);
imageView.setBackgroundResource(image);

v_fllipper.addView(imageView); // 이미지 추가
v_fllipper.setFlipInterval(4000); // 자동 이미지 슬라이드 딜레이시간(1000 당 1초)
v_fllipper.setAutoStart(true); // 자동 시작 유무 설정

// animation
v_fllipper.setInAnimation(this,android.R.anim.slide_in_left);
v_fllipper.setOutAnimation(this,android.R.anim.slide_out_right);
}

빌드 후 자신의 안드로이드 폰이나 없다면 가상디바이스를 만들어 자동으로 슬라이드가 되는지 확인해주세요.

오류가 나온다면 100% 이미지 크기(가로x세로)가 커서 오류가 나타나는 것입니다. (Logcat 참고바랍니다.)


감사합니다.

SOSOHANBOX™

Comments
  • 프로필사진 모고로 안녕하세요!. 올려주신글 잘보고 실행하였습니다.
    다만, 이미지가 아니라 제가 만든 3개의 xml을 자동 스크롤되게 하고싶은데 이런경우는 어떻게하나요?
    2019.08.08 09:54
  • 프로필사진 Favicon of https://sosohanbox.tistory.com BlogIcon CODE NAME 성단 XML 자동 스크롤이 무슨 말인지 구체적으로 알 수 있을까요? 2019.08.15 14:11 신고
댓글쓰기 폼