안드로이드 버튼 (Button)와 이미지 버튼

안드로이드 버튼 (Button), ?이미지 버튼(ImageButton) 이란 무엇?

안드로이드의 유저 인터페이스 중 사용자의 선택 확인 등에 사용되는 요소입니다.

상속관계

java.lang.Object
? android.view.View
? android.widget.TextView
? android.widget.Button

상 속 관계에서 보시다시피, TextView 를 상속 받았기 때문에 android:text 등의 TextView 속성을 그대로 사용할 수 있습니다. 사실 안드로이드 Button의 레퍼런스를 보시면 눈치채시겠지만, 안드로이드 Button은 TextView와 크게 차이가 없습니다. 이 두 위젯 간 활용법에서 가장 큰 차이는 터치 이벤트 유무일텐데요, 사실 터치 이벤트는 TextView 에서도 사용할 수 있습니다. 이 두 위젯은 UI 를 제외하고는 사실상 거의 같은 위젯입니다.

안드로이 드 이미지 버튼(ImageButton)은 Button 과는 달리 ImageView에서 상속받은 위젯입니다. 그냥 버튼과 다른 점은 버튼은 텍스트 혹은 텍스트 + 이미지 형태의 내용을 나타낼 때 사용하지만, 이미지 버튼은 오직 이미지 형태의 내용을 나타낼 때 사용합니다.

Button, ImageButton ?예제

일반 Button 예제(XML)

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_text" />

이미지 버튼 예제(XML)

이미지 버튼의 이미지를 설정하는 것은 “android:src” 속성을 이용해야 합니다.

<ImageButton
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:src="@drawable/button_icon"/>

일반 Button 에 이미지 추가(XML)

Button 도 TextView 처럼 상하좌우에 이미지 하나를 삽입할 수 있습니다.

<Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="@string/button_text"
 android:drawableLeft="@drawable/button_icon" />

위 코드는 아래와 같은 버튼이 생성됩니다.

button-types

안드로이드 버튼 이벤트 연결하기

버튼은 이벤트 빼면 앙금빠진 호빵이나 다름 없습니다. 그만큼 꼭 사용하고 중요한데요, 어떻게 사용하는지 알아보겠습니다. 버튼에 이벤트를 연결하는 방법은 두 가지가 있습니다.

첫 번째, 소스코드에서 직접 코드로 이벤트 핸들러를 구현하는 방법입니다.

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

 Button btn = (Button)findViewById(R.id.mybutton);
 btn.setOnClickListener(new View.OnClickListener() {
? ? public void onClick(View v) {
? ? ? ? // Do something ?
 }
});

두 번째, 클릭 리스너를 사용하지 않고 XML 에서 onClick 속성을 지정해 주는 방식이 있습니다.

<Button
android:id="@+id/button_send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send"
android:onClick="sendMessage" />
public void sendMessage(View view) {
// Do something in response to button click
}

android:onClick 에서 지정한 이름으로 메소드를 만들면 사용자가 버튼을 클릭하면 해당 매소드가 호출됩니다. 다만 해당 메소드는 반드시 public 이어야하고, 리턴형은 void 여야 합니다. 파라미터는 단 하나, 그리고 View 형이어야 합니다.

참고자료

  1. Android Developer

Leave a Reply

Leave a Reply

Your email address will not be published. Required fields are marked *