반응형
안녕하세요.
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™
반응형
'공부 > 개발노트' 카테고리의 다른 글
C# 홈페이지 접속하기 (0) | 2020.03.27 |
---|---|
C# 최대화 무효화하기 (0) | 2020.03.23 |
[JAVA] 윈도우에서 한글 자바 빌드 오류 해결 방법 [UTF-8로 빌드하기] (0) | 2018.11.06 |
[이것이 자바다] whileKeyControlExample 예제 급감속 급가속 추가 소스 (0) | 2018.10.30 |
[이것이 자바다] if문과 ifelse문 변형 (0) | 2018.10.28 |