Android樣式和主題

我叫阿狸貓發表於2014-02-26

樣式:

定義元件樣式的時候有兩種定義方法:

1.直接在main.xml的元件中定義樣式

2.用style="@style/"引用values資料夾下的樣式檔案裡定義的樣式



main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        style="@style/style1"
        android:text="hahahaha1" />
    <TextView
        style="@style/style2"
        android:text="hahahaha2" />
    <TextView
        style="@style/style2.style1"
        android:text="hahahaha4" />
    
    <!-- 最基本的樣式寫法,直接寫在元件裡,和html標籤中寫style屬性一個意思 -->
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="hahahaha3"
        android:textSize="30sp"
        android:textColor="#0000FF" />
</LinearLayout>

string,xml(也可以新建一個樣式的xml檔案,在裡邊定義樣式)

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, MainActivity!</string>
    <string name="app_name">TestStyle</string>
    <style name="style1">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:textColor">#FF0000</item>
        <item name="android:textSize">50sp</item>
    </style>
    
    <!-- 樣式的繼承 -->
    <style name="style2" parent="style1">
        <item name="android:textSize">20sp</item>
        <item name="android:textColor">#00FF00</item>
    </style>

    <!-- 樣式的繼承另一種寫法 -->
    <style name="style2.style1">
    </style>
</resources>



主題:

主題就是清單檔案中的android:theme屬性,當這個屬性在application元件中就是做用於所有Activity,當這個屬性在某個Activity上,就表示對某個Activity有效。


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.xxc.style"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="10" />
	<!-- android:theme也可以定義在application-->
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <!-- android:theme用來定義Activity樣式的 -->
        <activity
            android:theme="@android:style/Theme.Dialog"
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>




相關文章