0
点赞
收藏
分享

微信扫一扫

样式和主题之样式

宁静的猫 2022-03-30 阅读 71

一、样式

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

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



1.使用Style

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

styles.xml内容如下:

<?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对应属性的值。



2.使用样式:

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

<TextView 

    style="@style/wrap_content "

    android:textColor="#00FF00" 

    android:text="@string/hello" /> 



3、样式的继承

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

一、通过parent属性

修改styles.xml

<?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> 

新增名为inherit的样式,并且继承名为wrap_content样式,也就是说inherit具有wrap_content样式中定义的属性参数。

引用方式:style="@style/inherit" 

二、通过命名规则实现

<?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="wrap_content.inherit"> 

        <item name="android:textColor">#00FF00</item> 

    </style> 

</resources> 

</resources>通过“.”号实现继承。

引用方式:style="@style/wrap_content.inherit"



举报

相关推荐

0 条评论