버튼은 텍스트나 아이콘 또는 둘 다로 구성되며, 사용자가 클릭할 때 어떤 작업이 발생하는지 알려줍니다. 누릅니다.
<ph type="x-smartling-placeholder">레이아웃에 따라 세 가지 방법 중 하나로 레이아웃에서 버튼을 만들 수 있습니다. 텍스트, 아이콘 또는 둘 다를 포함하는 버튼을 원하는지 확인하세요.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="16dp" android:paddingRight="16dp" android:orientation="vertical" > <Button android:id="@+id/supabutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="I'm a button" /> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="A tiny Android icon" android:src="@drawable/baseline_android_24" app:tint="#ff0000" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableStart="@drawable/baseline_android_24" android:drawablePadding="4dp" android:drawableTint="#ff0000" android:text="I'm a button with an icon" /> </LinearLayout>
이전 코드는 다음과 같은 코드를 생성합니다.
클릭 이벤트에 응답
사용자가 버튼을 탭하면
Button
객체는
이벤트를 처리합니다.
프로그래매틱 방식으로 이벤트 핸들러를 선언하려면
View.OnClickListener
객체를 만들고
setOnClickListener(View.OnClickListener)
,
다음 예와 같이 됩니다.
Kotlin
findViewById<Button>(R.id.supabutton) .setOnClickListener { Log.d("BUTTONS", "User tapped the Supabutton") }
자바
Button button = (Button) findViewById(R.id.supabutton); button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Log.d("BUTTONS", "User tapped the Supabutton"); } });
버튼 스타일 지정하기
버튼의 모양(배경 이미지 및 글꼴)은 기기마다 다릅니다. 여러 제조업체의 기기는 종종 입력의 기본 스타일이 다르기 때문입니다. 컨트롤을 탭합니다.
다른 배경의 개별 버튼을 맞춤설정하려면
android:background
속성
드로어블이나 색상 리소스로 드로어블을 만들 수 있습니다. 또는 버튼에 스타일을 적용할 수 있습니다.
이는 HTML 스타일과 유사하게 작동하여 백그라운드,
변경할 수 있습니다. 스타일 적용에 대한 자세한 내용은 다음을 참고하세요.
스타일 및 테마:
테두리 없는 버튼
유용한 디자인 중 하나는 '테두리 없는' 버튼입니다. 기본 버튼과 유사한 테두리 없는 버튼 테두리나 배경이 없지만 다른 상태에서는 여전히 모양이 변경된다는 점이 다릅니다. 예를 들어 탭할 때처럼요
테두리 없는 버튼을 만들려면
borderlessButtonStyle
다음 예와 같이 버튼에 스타일을 추가합니다.
<Button android:id="@+id/supabutton" style="?android:attr/borderlessButtonStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="I'm a button" />
맞춤 배경
버튼 모양을 제대로 다시 정의하려면 맞춤 배경을 지정하면 됩니다. 그러나 간단한 비트맵이나 색상을 제공하는 대신 배경은 상태 목록이어야 합니다. 리소스의 현재 상태에 따라 모양을 변경하는 것입니다.
XML 파일에서 버튼을 표시할 수 있습니다.
버튼 배경에 상태 목록 드로어블을 생성하려면 다음 단계를 따르세요.
- 기본값, 탭, 포커스가 설정된 버튼 배경의 세 가지 비트맵 만들기 버튼 상태가 됩니다. 이미지가 다양한 크기의 버튼에 맞도록 하려면 비트맵을 나인 패치 비트맵을 사용하는 것입니다.
- 비트맵을 프로젝트의
res/drawable/
디렉터리에 배치합니다. 각 비트맵 이름 지정button_default.9.png
와 같이 표시되는 버튼 상태를 반영합니다.button_pressed.9.png
,button_focused.9.png
res/drawable/
디렉터리에 새 XML 파일을 만듭니다. 다음과 같은 이름을 지정합니다.button_custom.xml
다음과 같이 XML을 삽입합니다.<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/button_pressed" android:state_pressed="true" /> <item android:drawable="@drawable/button_focused" android:state_focused="true" /> <item android:drawable="@drawable/button_default" /> </selector>
이는 현재 상태에 따라 이미지를 변경하는 단일 드로어블 리소스를 정의합니다. 버튼을 클릭합니다.
- 첫 번째
<item>
는 버튼을 탭할 때 사용할 비트맵을 정의합니다. (활성화됨) - 두 번째
<item>
는 버튼에 포커스가 있을 때 사용할 비트맵을 정의합니다. 트랙볼이나 방향 패드를 사용하여 버튼을 강조표시했을 때처럼 동작합니다. - 세 번째
<item>
는 버튼이 기본값에 있을 때 사용할 비트맵을 정의합니다. 두 가지 상태가 아닌지 확인할 수 있습니다.
이 XML 파일은 단일 드로어블 리소스를 나타냅니다. 다음에 대해
Button
에서 참조하는 경우 표시되는 이미지는 버튼의 상태에 따라 변경됩니다.- 첫 번째
- 드로어블 XML 파일을 버튼 배경으로 적용합니다.
<Button android:id="@+id/button_send" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_send" android:onClick="sendMessage" android:background="@drawable/button_custom" />
사용 중지된 버튼을 정의하는 방법을 비롯하여 이 XML 구문에 관한 자세한 내용은
다른 상태에 있는 경우
StateListDrawable