当前位置:操作系统 > 安卓/Android >>

Android主题与样式

一、样式

样式是属性的集合,例如定义属性fontColor、fontSize、layout_width、layout_height等,以独立的资源文件存放在XML文件中,并设置样式的名称。

Android Style类似网页设计中的级联样式CSS设计思路,可以让设计与内容分离,并且可以方便的继承、覆盖、重用。

 


1.未使用Style

[html] <?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
     
<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textColor="#00FF00" 
    android:text="@string/hello" /> 
     
<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/hello" /> 
 
<Button  
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/hello" 
/> 
 
</LinearLayout> 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
   
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="#00FF00"
    android:text="@string/hello" />
   
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello" />

<Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="@string/hello"
/>

</LinearLayout>上述界面中有三个控件,2个TextView、1个Button。他们的布局宽度layout_width与布局高度layout_height都是wrap_content包裹内容。

下面看看,如何使用Style来改进。

 


2、使用Style

首先,在res/values/下创建Style XML资源文件,这里创建的Style资源文件名命名为styles.xml,这个可以自己自定义。

styles.xml内容如下:

[html] <?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="wrap_content"> 
        <item name="android:layout_width">wrap_content</item> 
        <item name="android:layout_height">wrap_content</item> 
    </style> 
</resources> 
<?xml version="1.0" encoding="utf-8"?>
<resources>
 <style name="wrap_content">
  <item name="android:layout_width">wrap_content</item>
  <item name="android:layout_height">wrap_content</item>
 </style>
</resources>其中,style标签中name属性类似CSS中的class name,item标签中的name对应属性的名字,item标签对中的text对应属性的值。

 


使用样式:

[html] <?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
     
<TextView 
    style="@style/wrap_content" 
    android:textColor="#00FF00" 
    android:text="@string/hello" /> 
     
<TextView 
    style="@style/wrap_content" 
    android:text="@string/hello" /> 
 
<Button  
    style="@style/wrap_content" 
    android:text="@string/hello" 
/> 
 
</LinearLayout> 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
   
<TextView
    style="@style/wrap_content"
    android:textColor="#00FF00"
    android:text="@string/hello" />
   
<TextView
    style="@style/wrap_content"
    android:text="@string/hello" />

<Button
 style="@style/wrap_content"
 android:text="@string/hello"
/>

</LinearLayout>

3、样式的继承

有两种方式来实现继承,一是通过style的parent属性,二是使用类似CSS中的命名规则来实现。

一、通过parent属性

修改styles.xml

[html] <?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="wrap_content"> 
        <item name="android:layout_width">wrap_content</item> 
        <item name="android:layout_height">wrap_content</item> 
    </style> 
     
    <style name="inherit" parent="wrap_content"> 
        <item name="android:textColor">#00FF00</item> 
    </style> 
</resources> 
<?xml version="1.0" encoding="utf-8"?>
<resources>
 <style name="wrap_content">
  <item name="android:layout_width">wrap_content</item>
  <item name="android:layout_height">wrap_content</item>
 </style>
 
 <style name="inherit" parent="wrap_content">
  <item

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,