๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
๐Ÿคท๐Ÿผ‍โ™€๏ธ Etc.../- C, C++, Python, Android

[์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค] ViewFlipper (์ž๋™ ํŽ˜์ด์ง€, ๋ทฐ ๋„˜๊ธฐ๊ธฐ)

by Wonit 2020. 5. 18.

ViewFlipper

ViewFlipper๋Š” ๋ทฐ ์ปจํ…Œ์ด๋„ˆ์ค‘ ํ•˜๋‚˜๋กœ ๋‹ค๋ฅธ ๋ทฐ ์ปจํ…Œ์ด๋„ˆ๋“ค๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ์กฐ๊ธˆ ๋ณต์žกํ•œ ๋ชจ์–‘์„ ๊ฐ–๋Š”๋‹ค.


์˜ˆ๋ฅผ ๋“ค์–ด ์šฐ๋ฆฌ๊ฐ€ ์›นํˆฐ์„ ๋ณด๊ณ  ์žˆ๋Š”๋ฐ, ์†์œผ๋กœ ๋„˜๊ธฐ๋Š” ๊ฒƒ์ด ๊ท€์ฐฎ์•„์„œ ์ž๋™ ๋„˜๊น€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•˜๋ฉด ์ด ๊ฒƒ์€ ViewFlipper์˜ ์—ญํ• ์ด๋‹ค.

ViewFlipper ์‘์šฉ

 

๋ทฐ ํ”Œ๋ฆฌํผ๋ฅผ ์‘์šฉํ•˜๋ฉด ๋‹ค์–‘ํ•œ ์•ฑ์ด ๋งŒ๋“ค์–ด์ง€๋Š”๋ฐ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ๋ถ„์•ผ๋กœ ์‘์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

  1. ์ž๋™ ํŽ˜์ด์ง•
  2. ํƒญํ•˜์—ฌ ๋ทฐ ๋„˜๊ธฐ๊ธฐ

์ด ๋‘๊ฐ€์ง€ ๋ถ„์•ผ์ค‘ ์šฐ๋ฆฌ๋Š” ์ž๋™ ํŽ˜์ด์ง•์— ๋Œ€ํ•ด์„œ ์‹ค์Šตํ•ด๋ณด์ž.

 

๋ทฐ ํ”Œ๋ฆฌํผ ์ž๋™ ํŽ˜์ด์ง•

 

ViewFlipper์˜ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

 

<ViewFlipper
        android:id="@+id/viewFlipper"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        ...๋‚ด๋ถ€ ์œ„์ ฏ...

</ViewFlipper>

 

XML๋กœ ์œ„์™€ ๊ฐ™์ด ViewFlipper๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค๋ฉด ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ๋ทฐ๋ฅผ ์–ผ๋งˆ๋‚˜ ๋„ฃ์„ ๊ฒƒ์ธ์ง€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.


๋งŒ์•ฝ view๊ฐ€ 3๊ฐœ๋ผ๋ฉด 3๊ฐœ์˜ ๋ทฐ๋งŒ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

์šฐ๋ฆฌ๋Š” ๊ทธ ๋ทฐ๋ฅผ ImageView๋ฅผ ์จ์„œ Image๋ฅผ ๋„์›Œ๋ณด์ž.

xml ์ฝ”๋“œ

<ViewFlipper
        android:id="@+id/viewFlipper"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="40dp"
            android:src="@drawable/pic01"/>
        <ImageView
            android:id="@+id/imageView2"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="40dp" />
        <ImageView
            android:id="@+id/imageView3"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="40dp" />
    </ViewFlipper>

 

๊ทธ๋ฆฌ๊ณ  ์œ„์˜ ์ด๋ฏธ์ง€ ๋ทฐ๋ฅผ ์ž๋™์œผ๋กœ ํŽ˜์ด์ง• ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‹œ์ž‘ ๋ฒ„ํŠผ๊ณผ ์ข…๋ฃŒ ๋ฒ„ํŠผ ๋˜ํ•œ ๋„ฃ์–ด๋ณด์ž.

 

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal">

        <Button
            android:id="@+id/startBtn"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:layout_margin="2dp"
            android:text="์‚ฌ์ง„๋ณด๊ธฐ ์‹œ์ž‘"/>
        <Button
            android:id="@+id/stopBtn"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:layout_margin="2dp"
            android:text="์‚ฌ์ง„๋ณด๊ธฐ ์ •์ง€"/>
    </LinearLayout>

 

java ์ฝ”๋“œ

 

java ์ฝ”๋“œ์—์„œ๋Š” 3๊ฐ€์ง€์˜ flipping ๊ด€๋ จ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๋‹ค.

 

startFlipping()

ํ™”๋ฉด ๋„˜๊น€ ์‹œ์ž‘ ๋ฉ”์„œ๋“œ

stopFlipping()

์ •์ง€ ๋ฉ”์„œ๋“œ

setFlipInterVal(millisceond)

ํ™”๋ฉด ๋„˜๊น€ ๊ฐ„๊ฒฌ ๋ฉ”์„œ๋“œ

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 {

    Button startBtn, stopBtn;
    ViewFlipper viewFlipper;
    //ImageView imageView1, imageView2, imageView3;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        startBtn = (Button) findViewById(R.id.startBtn);
        stopBtn = (Button) findViewById(R.id.stopBtn);
        viewFlipper = (ViewFlipper) findViewById(R.id.viewFlipper);

        startBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                viewFlipper.startFlipping();
                viewFlipper.setFlipInterval(1000);
            }
        });

        stopBtn.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                viewFlipper.stopFlipping();
            }
        });
    }
}

๋Œ“๊ธ€