'클릭'에 해당되는 글 1건

  1. 2016.10.23 [Android] 버튼 눌림 효과 (Button / ImageView)
2016.10.23 23:16



Button의 눌림 효과

기존 버튼은 백그라운드로 이미지를 넣게되면 눌림효과가 사라진다.

그래서 백그라운드를 넣어서 버튼을  꾸미게되면 그에따라 눌렸을 경우의 이미지를 준비해야한다.

 

버튼의 눌렸을 경우의 이벤트 xml

button_event.xml

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true"

        android:drawable="@drawable/눌렸을 경우 이미지"/>

    <item android:drawable="@drawable/기본 이미지"/>

</selector>

 

버튼을 사용하는 xml

        <Button

            android:id="@+id/time_back"

            android:layout_width="fill_parent"

            android:layout_height="fill_parent"

            android:background="@layout/button_event"

            android:text="취소" />

 

이 처럼 간단하게 사용한다. 하지만 이미지뷰를 사용할경우는 조금 할 일이 많다.

버튼의 직사각형을 벋어나 다양한 모양으로 이미지를 사용할경우에 이미지뷰를 이용해서 버튼을 만든다. (버튼 처럼 만든다.)

이미지 버튼이 있지만 이미지버튼은 버튼 안에 이미지가 들어가는 형태로 거의 사용하지 않는다.

 





ImageView의 눌림 효과

이미지를 버튼으로 이용하였을 경우의 소스이다.

이미지의 변화가 시각적으로 나타나야되기 때문에 클릭리스너를 사용하지 낳고 터치리스너를 사용한다.

 

OnTouchListener 사용 부분

  private OnTouchListener mTouchEvent = new OnTouchListener() {

public boolean onTouch(View v, MotionEvent event) {

ImageView image = (ImageView) v;

switch (v.getId()) {

case R.id.image_player:

if (event.getAction() == MotionEvent.ACTION_DOWN) {

image.setColorFilter(0xaa111111, Mode.SRC_OVER);

} else if (event.getAction() == MotionEvent.ACTION_UP) {

image.setColorFilter(0x00000000, Mode.SRC_OVER);

}

break;

}

}

}

이미지가 눌렸을 때 이미지에 색을 넣어서 마치 눌린것과 같은 효과를 준다.

 

* 이미지를 눌러서 이벤트를 주려면 xml에서 android:clickable="true"을 넣어 주어야 한다.

 

신고


Posted by injunech

티스토리 툴바