Home > DeveloperSection > Articles > Android resource selectors

Android resource selectors


Android Android  Style  Android Styles  Android Controls 
Ratings:
0 Comment(s)
 965  View(s)
Rate this:

Android resource selectors


Once you provide a resource in your application, you can apply it by referencing its resource ID. All resource IDs are defined in your project's R class, which the aapt tool automatically generates.

When you compiled your application then R class generated automatically, which contain resource Ids for all the resource in your res directory.

Android provides many resources directories like as layout, menu, values, drawable, anim etc.

If you are adding image or icon in res folder then you have need to better pixels choice to add in folder images. Here I am giving format pixels of image.

Density selector             Equal                  

ldpi                               160 dpi x 0.75

mdpi                            160 dpi

hdip                             1.5 x 160 dpi = 240 dpi

xhdpi                            2 x 160 dpi = 320 dpi

xxhdpi                          3 x 160 dpi = 480 dpi

xxxhdpi                        4 x 160 dpi = 640 dpi

 

Icon size in Android

Icons                           mdpi               hdpi               xhdpi                xxhdpi              xxxhdpi

Launcher icon            48 px               72 px              96 px                144 px                192 px

Action bar icon          32 px               48 px              64 px                 96 px                 128 px

Notification icon       24 px               36 px              48 px                  72 px                  96 px

Here I am creating a sample of selector for button in resource file

1.      Create an android project and minimum sdk must be greater than 10.

2.      Add xml.file in with Resource type selector res/drawable-hdpi folder, name as button_style.xml

 

 

And add following code

 

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

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

 

    <item android:state_pressed="true"><shape android:shape="oval">

         <corners android:radius="3dip" />

 

         <stroke android:width="1dip" android:color="#2c2f34" />

 

          <gradient android:angle="-90" android:endColor="#363c45" android:startColor="#090b0e" />

       </shape></item>

   <item android:state_focused="true"><shape android:shape="rectangle">

          <corners android:radius="3dip" />

 

           <stroke android:width="1dip" android:color="#2c2f34" />

 

           <solid android:color="#1d242c" />

        </shape></item>

    <item><shape android:shape="rectangle">

            <corners android:radius="3dip" />

 

            <stroke android:width="1dip" android:color="#2c2f34" />

 

     <gradient android:angle="-90" android:endColor="#1d242c" android:startColor="#545c67" />

        </shape></item>

 

</selector>

3.      Now add style in your views

 

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

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:layout_marginTop="30sp"

    tools:context=".MainActivity" >

 

    <Button

        android:id="@+id/mybtn1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_marginLeft="3sp"

        android:layout_weight=".25"

        android:background="@drawable/buttonstyle"

        android:text="Text1"

        android:textColor="#ffffff" />

 

    <Button

        android:id="@+id/mybtn2"

        style="@android:attr/borderlessButtonStyle"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_marginLeft="3sp"

        android:layout_weight=".25"

        android:background="@drawable/buttonstyle"

        android:text="Text2"

        android:textColor="#ffffff" />

 

    <Button

        android:id="@+id/mybtn3"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_marginLeft="3sp"

        android:layout_weight=".25"

        android:background="@drawable/buttonstyle"

        android:text="Text3"

        android:textColor="#ffffff" />

 

    <Button

        android:id="@+id/mybtn4"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_marginLeft="3sp"

        android:layout_marginRight="3sp"

        android:layout_weight=".25"

        android:background="@drawable/buttonstyle"

        android:text="Text4"

        android:textColor="#ffffff" />

 

</LinearLayout>

 

4.      Run your application

     

 

You can change your button format. Add following code in button_style.xml

 

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

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

 

   <item android:state_pressed="true"><shape android:shape="rectangle">

            <corners android:radius="3dip" />

 

            <stroke android:width="1dip" android:color="#2c2f34" />

 

            <gradient android:angle="-90" android:endColor="#1A76C1" android:startColor="#1F94F4" />

        </shape></item>

    <item android:state_focused="true"><shape android:shape="oval">

            <corners android:radius="3dip" />

 

            <stroke android:width="1dip" android:color="#2c2f34" />

 

            <solid android:color="#1d242c" />

        </shape></item>

    <item><shape android:shape="oval">

            <corners android:radius="1dip" />

 

            <stroke android:width="1dip" android:color="#545c67" />

 

            <gradient android:angle="-90" android:endColor="#1F94F4" android:startColor="#1A76C1" />

        </shape></item>

 

</selector>

 

Run your application

 

   

 

 

 


Don't want to miss updates? Please click the below button!

Follow MindStick