또자의 코딩교실

[스마트인재개발원] 이미지 슬라이드 앱 만들기 본문

코딩공부/Android

[스마트인재개발원] 이미지 슬라이드 앱 만들기

또자자 2022. 1. 3. 15:36

이번엔 정신나간 강아지가 귀여운 이미지 슬라이드 앱을 만들어보자.

안드로이드 이벤트를 실습해볼 수 있는 아주 좋은 예제다.


✅ 안드로이드 Event란?

- 사용자가 핸드폰을 해서 하는 행위 뿐만 아니라 안드로이드 내의 상태를 감지하는 것

ex: 클릭, 화면터치, 더블클릭, ,app시작, 종료, 시스템 상태변화(배터리 부족, 메시지 등), 앱 활성화

 

  • 안드로이드 이벤트 진행방식

  • 폴링방식
    • 터치하면 바로 처리함
    • 터치하지 않는다면 내부적으로 터치하기까지를 계속 기다린다.
      (무한으로 반복 >> CPU 프로세스를 많이 잡아먹음)
  • 이벤트 구동방식(Event Driven방식)
    • 다른 작업을 하고있을테니, 터치하면 알려주세요.
    • 들어왔을떼, 그때만 처리하는 방식
  • 안드로이드 이벤트 적용방법
  • Xml에서 Onclick속성에 메소드를 연결하는 방법
  • 인터페이스를 클래스에 구현하는 방법
    • 추상메소드를 Overriding해야한다.
    • 공통된 기능을 구현할 때 사용한다.

다시 실습으로 돌아와서, 화면 레이아웃 구성은 다음과 같다.

 

다음은 구현코드다.

package com.example.app211126;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity4 extends AppCompatActivity implements View.OnClickListener{
	
    //이미지배열 생성
    int[] imgArr = {R.drawable.dog_1, R.drawable.racoon_2, R.drawable.cat_3};
    //이미지 뷰 지정
    ImageView imageView;
    //버튼 지정
    Button previous, next;
    
    int num=0; //이미지 배열의 숫자

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

    private void initView() {

        imageView = findViewById(R.id.dog1);

        //image를 변경하는 메소드ㅡ 직접 변경
        //imageView.setImageResource(R.drawable.cat_3);

        //배열에 요소값으로 적용
        
    }


    @Override
    public void onClick(View view) {

        Log.v("Onclick","클릭이벤트 발생!"); //눌렀을때 정말 눌렀는지 확인하기

        int viewId = view.getId(); //view에서 해당하는 객체를 가져오는 것

        if (viewId == R.id.previous){
            num--;
            if(num<0) {
                num=imgArr.length-1; //길이는 3인데 하나빼줘야 마지막 인덱스 값이 나오므로 1을 빼주자.
            }
        }else{
            num++;
            if(num>=imgArr.length) {
                num=0;
            }
        }
        imageView.setImageResource(imgArr[num]);
    }
}

 

Comments