Android Studio

Do it 안드로이드 앱 프로그래밍 - 3) 이벤트와 리스트뷰

_jordy 2021. 3. 6. 16:56

이벤트 : 터치이벤트 , 키 이벤트

 

1) 터치 이벤트 : 가장 多사용 ( 손가락으로 누를 때, 누른 상태에서 움직일 때, 누른 상태에서 뗄 때=>구분은 getAction메소드를 통해 가능) 

터치했을 때 발생하는 이벤트 : MotionEvent 

 

   public boolean onTouch(View view, MotionEvent motionEvent) {
        int action = motionEvent.getAction();

        if (action == MotionEvent.ACTION_DOWN) {
            println("손가락 눌림.");
        } else if (action == MotionEvent.ACTION_MOVE) {
            println("손가락 움직임.");
        } else if (action == MotionEvent.ACTION_UP) {
            println("손가락 뗌.");
        }
        return true;
    }

2) 제스처 이벤트 : 대표적인 것 scroll(손가락으로 드래그 하는 경우, 이동한 거리 값이 중요),fling(빠른 속도로 스크롤하는 것, 이동한 속도 값이 중요)

제스처 이벤트를 처리해주는 클래스 GestureDtector

 

3) 키 이벤트 

   public boolean onKeyDown(int keyCode, KeyEvent event) {
       if(keyCode == KeyEvent.KEYCODE_BACK) {
            Toast.makeText(this, "시스템 [BACK] 버튼이 눌렸습니다.", Toast.LENGTH_LONG).show();
            return true;
        }
    return false;
}

 

토스트

Toast.makeText(Context context, String message, int duration).show();

토스트의 위치와 여백 지정 -> setGravity, setMargin

 

스낵바

Snackbar.make(v, "스낵바입니다.", Snackbar.LENGTH_LONG).show();

 

*알림 대화상자 보여주기( ex) 창을 닫을까요? 예/아니오)

AlertDialog.Builder builder = new AlertDialog.Builder(this); 

builder.setTitle("안내");
builder.setMessage("종료하시겠습니까?");
builder.setIcon(android.R.drawable.ic_dialog_alert);

builder.setPositiveButton("확인", new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int whichButton) {
        String message = "확인 버튼이 눌렸습니다. ";
         textView.setText(message);
         ...중략

    }
});

AlertDialog dialog = builder.create(); 
dialog.show();

 

프로그래스바

: 어떤 일의 진행상태를 보여주는 바

 

나인패치 : 이미지가 늘어나거나 줄어들 때 생기는 이미지 왜곡을 해결하는 방법

: 수정한 이미지의 파일 이름 .9.png => 파일 확장자 앞에 '.9'붙여야 함 => 원본이미지의 가로,세로 끝부분의 픽셀을 모두 나인패치 이미지의 정보를 담은 것으로 인식 (흰색인 경우 늘어나지 않는 영역, 검은색인 경우 늘어나는 영역으로 구분 ∴ 가운데 부분만 늘어나므로 이미지의 크기가 커지더라도 모서리 부분은 원래의 이미지 모양을 유지할 수 있음)

 

비트맵 버튼 : 나인패치 이미지로 만든 버튼은 아무리 눌러도 이미지의 변화가 없어 사용자가 버튼을 눌렀는지 알 수 없는 단점이 있음 -> 비트맵 이미지를 이용해 버튼의 상태를 표시하여 버튼이 눌렸을 때와 떼어졌을 때를 이벤트로 구분하여 처리

 

 

리스트뷰

리스트 아이템의 데이터는 어댑터가 관리!

강의-> 각 리스트별 이미지 상이하게 적용, 추가버튼을 누르면 리스트 추가할 수 있도록 함 =>확인