Custom Button
- PDF for offline use
- Sample Code:
Let us know how you feel about this
Translation Quality
0/250
last updated: 2017-04
In this section, you will create a button with a custom image instead
of text, using the Button widget
and an XML file that defines three different images to use for the
different button states. When the button is pressed, a short message
will be displayed.
Copy the images on the right into the Resources/drawable directory of your project. These will be used for the different button states.
Create a new file in the Resources/drawable directory named android_button.xml. Insert the following XML:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/android_pressed" android:state_pressed="true" /> <item android:drawable="@drawable/android_focused" android:state_focused="true" /> <item android:drawable="@drawable/android_normal" /> </selector>This defines a single drawable resource, which will change its image based on the current state of the button. The first
<item>defines androidpressed.png as the image when the button is pressed (it's been activated); the second<item>defines androidfocused.png as the image when the button is focused (when the button is highlighted using the trackball or directional pad); and the third<item>defines android_normal.png as the image for the normal state (when neither pressed nor focused). This XML file now represents a single drawable resource and when referenced by aButtonfor its background, the image displayed will change based on these three states.
ℹ️Note: The order of the
<item>elements is important. When this drawable is referenced, the<item>s are traversed in-order to determine which one is appropriate for the current button state. Because the "normal" image is last, it is only applied when the conditionsandroid:state_pressedandandroid:state_focusedhave both evaluated false.
Open the Resources/layout/Main.axml file and add the
Buttonelement:<Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:background="@drawable/android_button" />The
android:backgroundattribute specifies the drawable resource to use for the button background (which, when saved at Resources/drawable/android.xml, is referenced as@drawable/android). This replaces the normal background image used for buttons throughout the system. In order for the drawable to change its image based on the button state, the image must be applied to the background.To make the button do something when pressed, add the following code at the end of the
OnCreate()) method:Button button = FindViewById<Button>(Resource.Id.button); button.Click += (o, e) => { Toast.MakeText (this, "Beep Boop", ToastLength.Short).Show (); };This captures the
Buttonfrom the layout, then adds aToastmessage to be displayed when theButtonis clicked.Now run the application.
Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.
Let us know how you feel about this
Translation Quality
0/250
Xamarin Workbook
If it's not already installed, install the Xamarin Workbooks app first. The workbook file should download automatically, but if it doesn't, just click to start the workbook download manually.




