jeudi 14 mai 2015

Android style is not working in API 13 and lower versions

I'm working on android sample project handling styles in all the versions of android. Style is working in Android API 14(ICS) and above but it is not working in API 13 and lower versions.

My Layout file is

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

<FrameLayout xmlns:android="http://ift.tt/nIICcg"
    xmlns:tools="http://ift.tt/LrGmb4"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_margin="10dp"
    android:layout_marginTop="5dp">

    <LinearLayout
        android:id="@+id/logon_layout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#FF525252"
        android:orientation="vertical"
        android:padding="10dp"
        tools:ignore="RtlHardcoded">

        <RelativeLayout
            android:id="@+id/username_layout"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

            <EditText
                android:id="@+id/username"
                style="@style/loginField"
                android:hint="Enter the username"
                android:imeOptions="actionNext"
                android:inputType="textFilter"
                android:textColorHint="#FF666666" />

            <TextView
                android:id="@+id/usernameLabel"
                style="@style/signOnField"
                android:layout_alignLeft="@id/username"
                android:contentDescription="@string/online_username"
                android:focusable="true"
                android:labelFor="@id/username"
                android:nextFocusDown="@id/username"
                android:text="Name:"
                android:textColor="#FF767070" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/password_layout"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

            <EditText
                android:id="@+id/password"
                style="@style/loginField"
                android:hint="Enter the password"
                android:imeOptions="actionGo"
                android:inputType="text"
                android:textColorHint="#FF666666"
                tools:ignore="TextFields" />

            <TextView
                android:id="@+id/password_text"
                style="@style/signOnField"
                android:layout_alignLeft="@+id/password"
                android:contentDescription="@string/online_password"
                android:focusable="true"
                android:labelFor="@+id/password"
                android:text="Password:"
                android:textColor="#FF767070" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/signinBtn"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            tools:ignore="RelativeOverlap">

            <Button
                android:id="@+id/signOn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:layout_marginTop="5dp"
                android:background="@drawable/button_signon"
                android:contentDescription="Login"
                android:filterTouchesWhenObscured="true"
                android:minHeight="20dp"
                android:minWidth="20dp"
                android:paddingBottom="5dp"
                android:paddingTop="5dp"
                android:text="Login"
                android:textAllCaps="false"
                android:textColor="#FF5e5e5e"
                android:textSize="18sp"
                android:textStyle="bold"
                tools:ignore="RelativeOverlap,UnusedAttribute" />

        </RelativeLayout>
    </LinearLayout>
</FrameLayout>

loginField style is

<style name="bgfield" parent="@style/myfield">
        <item name="android:maxLength">14</item>
        <item name="android:background">@drawable/myshape</item>
        <item name="android:layout_centerVertical">true</item>
        <item name="android:paddingTop">5dp</item>
        <item name="android:paddingBottom">5dp</item>
        <item name="android:textSize">15sp</item>
    </style>


<style name="myfield" parent="BaseField">
        <item name="android:paddingLeft">115dp</item>
    </style>



<style name="BaseField" parent="@android:style/Widget.EditText">
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_width">fill_parent</item>
        <item name="android:scrollHorizontally">true</item>
        <item name="android:maxLines">1</item>
        <item name="android:lines">1</item>
        <item name="android:textSize">16sp</item>
        <item name="android:layout_marginTop">5dp</item>
        <item name="android:textColor">#FF000000</item>
        <item name="android:textCursorDrawable" tools:ignore="NewApi">@null</item>
    </style>

myshape.xml file is

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://ift.tt/nIICcg"
       android:padding="10dp"
       android:shape="rectangle">

    <solid android:color="#FFFFFF"/>
    <corners android:radius="5dp"/>

</shape>

signonField style is

<style name="signOnField" parent="@style/MyTxtField">
        <item name="android:layout_centerVertical">true</item>
        <item name="android:layout_marginLeft">15dp</item>
        <item name="android:paddingTop">5dp</item>
        <item name="android:textSize">13sp</item>
        <item name="android:paddingBottom">5dp</item>
        <item name="android:textStyle">bold</item>
    </style>

    <style name="MyTxtField" parent="@style/MyTxt">
        <item name="android:textSize">18sp</item>
    </style>

    <style name="MyTxt" parent="@android:style/Widget.TextView">
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:textColor">@color/text</item>
    </style>

button_signon.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://ift.tt/nIICcg">

    <item android:drawable="@drawable/pressed_signin" android:state_pressed="true"/>
    <item android:drawable="@drawable/pressed_signin" android:state_focused="true"/>   
    <item android:drawable="@drawable/disabled" android:state_enabled="false"/>
    <item android:drawable="@drawable/btn_default" />            
</selector>

pressed_signin.xml

<solid android:color="#FFFFFFFF" />

<corners android:radius="5dp" />

<padding
    android:left="20dp"
    android:right="20dp" />

disabled.xml

<shape xmlns:android="http://ift.tt/nIICcg"
    android:shape="rectangle" >

    <corners android:radius="5dp" />

    <gradient
        android:angle="270"
        android:centerColor="#FFc1cde1"
        android:endColor="#FFbdc8db"
        android:startColor="#FFcad5ea" />

    <padding
        android:left="20dp"
        android:right="20dp" />

</shape>

btn_default.xml

<shape xmlns:android="http://ift.tt/nIICcg"
    android:shape="rectangle" >

    <solid android:color="#FFd6d6d6" />

    <corners android:radius="5dp" />

    <gradient
        android:angle="90"
        android:centerColor="#FFFFFFFF"
        android:endColor="#FFFFFFFF"
        android:startColor="#FFd6d6d6" />

    <padding
        android:left="20dp"
        android:right="20dp" />

</shape>

In API level 13 and below the style is not applying/working. Can anyone let me know where i'm going wrong.

This is user authentication UI.

Aucun commentaire:

Enregistrer un commentaire