Android Studio를 활용한 안드로이드 프로그래밍 P259 직접 풀어보기 6-2


뷰플리퍼를 이용하여 자동 사진 보기 앱을 작성하라.


적절한 이미지 여러 장이 "자동"으로 넘어가는 앱을 만든다.

<사진보기 시작>버튼 클릭 시 1초 단위로 화면이 넘어가고, <사진보기 정지>를 누르면 멈춘다.

*본인은 3개의 사진을 이용했음




XML코드

미리 사진을 drawable 폴더에 넣어놔야합니다. 형식이름이 jpeg면 XML코드에서 인식을 못하므로 jpg나 png방식을 권장합니다.

저는 png 파일 형식을 이용했습니다.


*JPEG파일을 PNG파일로 변환시키는 방법

그림판-> JPEG파일 열기-> 다른이름으로저장(PNG파일로 저장)



<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnPrev"
android:layout_weight="1"
android:text="사진보기시작"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnNext"
android:layout_weight="1"
android:text="사진보기정지"/>
</LinearLayout>
<ViewFlipper
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/viewFli1">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/cat"
android:id="@+id/cat1"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/dog"
android:id="@+id/dog1"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/rab"
android:id="@+id/rab1"/>
</ViewFlipper>
<!-- 몇개의 사진을 app->res->drawable 폴더에 넣어놔야함
// jpeg 는 인식을 못하므로 jpg나 png 파일을 권장함. 본인은 png파일사용-->
</LinearLayout>


MainActivity

startFlipping, stopFlipping, setFilplnterval 메소드를 어떻게 사용했는지만 살펴보면 될 것 같습니다.

시간간격은 ms단위이므로 1000은 1초를 의미합니다.

package com.example.pracice6_2;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ViewFlipper;

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnPrev,btnNext;
final ViewFlipper vf;
btnPrev=(Button)findViewById(R.id.btnPrev);
btnNext=(Button)findViewById(R.id.btnNext);
vf=(ViewFlipper)findViewById(R.id.viewFli1);
ImageView a1=(ImageView)findViewById(R.id.cat1);
ImageView a2=(ImageView)findViewById(R.id.dog1);
ImageView a3=(ImageView)findViewById(R.id.rab1);
btnPrev.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
vf.setFlipInterval(1000);
vf.startFlipping();
}
});
btnNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
vf.stopFlipping();
}
});
}
}


'Android Studio를 활용한 안드로이드 프로그래밍' 카테고리의 다른 글

직접 풀어보기 7-1  (0) 2020.05.18
직접 풀어보기 6-3  (5) 2020.05.11
직접 풀어보기 6-1  (1) 2020.05.03
직접 풀어보기 5-5  (0) 2020.05.03
직접 풀어보기 5-4  (0) 2020.05.03

+ Recent posts