728x90
한빛아카데미 Android Studio를 활용한 안드로이드 프로그래밍 6판
p.259 직접 풀어보기 6-2
뷰플리퍼를 이용하여 자동 사진 보기 앱을 작성하라.
- 적절한 이미지 여러 장이 자동으로 넘어가는 앱이다.
- <사진보기 시작>과 <사진보기 정지>를 만들고, <사진보기 시작>을 클릭하면 1초 단위로 화면이 자동으로 넘어가게 한다.
- 뷰플리퍼 안에 리니어레이아웃을 배치할 필요는 없고 직접 이미지 뷰가 나오면 된다.
HINT 화면 넘김 시작 메소드로 startFlipping(), 화면 넘김 간격 메소드로 setFliplnterval(밀리초)을 사용한다.
코드
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
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:id="@+id/btnStart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="사진보기 시작" />
<Button
android:id="@+id/btnStop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="사진보기 종료" />
</LinearLayout>
<ViewFlipper
android:id="@+id/viewFlipper"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imgView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/cupcake" />
<ImageView
android:id="@+id/imgView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/donut" />
<ImageView
android:id="@+id/imgView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/eclair" />
<ImageView
android:id="@+id/imgView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/froyo" />
<ImageView
android:id="@+id/imgView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/gingerbread" />
<ImageView
android:id="@+id/imgView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/honeycomb" />
<ImageView
android:id="@+id/imgView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/icecream" />
<ImageView
android:id="@+id/imgView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/jellybean" />
<ImageView
android:id="@+id/imgView9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/kitkat" />
<ImageView
android:id="@+id/imgView10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/lollipop" />
<ImageView
android:id="@+id/imgView11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/marshmallow" />
<ImageView
android:id="@+id/imgView12"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/nougat" />
<ImageView
android:id="@+id/imgView13"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/oreo" />
<ImageView
android:id="@+id/imgView14"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/pie" />
<ImageView
android:id="@+id/imgView15"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/q10" />
</ViewFlipper>
</LinearLayout>
MainActivity.java
package com.cookandroid.test;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ViewFlipper;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnStart, btnStop;
final ViewFlipper viewFlipper;
btnStart = findViewById(R.id.btnStart);
btnStop = findViewById(R.id.btnStop);
viewFlipper = findViewById(R.id.viewFlipper);
viewFlipper.setFlipInterval(1000);
btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
viewFlipper.startFlipping();
}
});
btnStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
viewFlipper.stopFlipping();
}
});
}
}
결과
728x90
'개발 > 책' 카테고리의 다른 글
[안드로이드 프로그래밍] 6장 직접 풀어보기 6-3 (0) | 2021.10.09 |
---|---|
[안드로이드 프로그래밍] 6장 직접 풀어보기 6-1 (0) | 2021.10.08 |
[쉽게 풀어쓴 C언어 Express] 6장 Programming (0) | 2021.10.06 |