android学习笔记---50_样式与主题,给控件使用样式,给应用使用主题
2013-05-18 13:42
411 查看
50_样式与主题
-----------------
android样式和主题(style&theme)
--------------------------------------
1. android中的样式和CSS样式作用相似,都是用于为界面元素定义显示风格,它是一个包含一个或者多个view控件属性的集合。如:需要定义字体的颜色和大小。
在CSS中是这样定义的:
<style>
.itcast{COLOR:#0000CC;font-size:18px;}
</style>
可以像这样使用上面的css样式:<div class="itcast">javaeye</div>
在Android中可以这样定义样式:
在res/values/styles.xml文件中添加以下内容
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name=“itcast”> <!-- 为样式定义一个全局唯一的名字-->
<item name=“android:textSize”>18px</item> <!-- name属性的值为使用了该样式的View控件的属性 -->
<item name="android:textColor">#0000CC</item>
</style>
</resources>
在layout文件中可以像下面这样使用上面的android样式:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ....>
<TextView style="@style/itcast"
..... />
</LinearLayout>
-------------------------------------------------------
2.新建android项目:style
---------------------
a.样式:应用在具体的某个控件上。
/style/res/values/styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="textViewStyle"><!-- 给样式定义名称 -->
<!-- 这里为main.xml文件中的TextView控件定义样式,
android:textSize: 指定属性的名称
android:textColor:指定文本颜色
定义完成之后就可以在main.xml中使用该样式了。
使用的时候:style="@style/childStyle.lidewei" 这里是要使用的样式的名字:childStyle.lidewei
-->。
<item name="android:textSize">22sp</item>
<item name="android:textColor">#FF0000</item>
</style>
<style name="childStyle" parent="textViewStyle">
<!-- 这里可以使用子样式继承父样式的内容。 -->
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textColor">#00FF00</item>
</style>
<style name="childStyle.lidewei">
<!-- 这里是子样式继承父样式的第二种方法 lidewei是子样式的名字。childStyle是父样式的名字,用.号连接
lidewei继承childStyle,childStyle又继承textViewStyle样式
-->
<item name="android:textColor">#0000FF</item>
</style>
<style name="credreamTheme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">?android:windowNoTitle</item>
<!-- 注意这里?android:windowNoTitle这句代码的意思是:这个属性的值引用的android:windowNoTitle这个属性,?android:windowNoTitle
这个属性为true这个android:windowFullscreen属性也为true,为false这个属性也为false。改了android:windowNoTitle这个属性
那么该属性也会跟着变 -->
<item name="android:textSize">18sp</item>
<!-- 设置该窗口中的显示的文字大小,和文字颜色 -->
<item name="android:textColor">#FFFFFF</item>
</style>
</resources>
----------------------------------------------
/style/res/layout/main.xml
<?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"
>
<!-- 使用样式的方法
style="@style/textViewStyle"
style="@style/childStyle"
style="@style/childStyle.lidewei" -->
<TextView
style="@style/childStyle.lidewei"
android:text="@string/hello"
/>
</LinearLayout>
-------------------------------------
b.主题应用与整个应用,或者单个activity。
也是在values文件夹下style.xml文件中定义:这里不一定就叫style.xml也可以起其他名字
---------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="textViewStyle"><!-- 给样式定义名称 -->
<!-- 这里为main.xml文件中的TextView控件定义样式,
android:textSize: 指定属性的名称
android:textColor:指定文本颜色
定义完成之后就可以在main.xml中使用该样式了。
使用的时候:style="@style/childStyle.lidewei" 这里是要使用的样式的名字:childStyle.lidewei
-->。
<item name="android:textSize">22sp</item>
<item name="android:textColor">#FF0000</item>
</style>
<style name="childStyle" parent="textViewStyle">
<!-- 这里可以使用子样式继承父样式的内容。 -->
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textColor">#00FF00</item>
</style>
<style name="childStyle.lidewei">
<!-- 这里是子样式继承父样式的第二种方法 lidewei是子样式的名字。childStyle是父样式的名字,用.号连接
lidewei继承childStyle,childStyle又继承textViewStyle样式
-->
<item name="android:textColor">#0000FF</item>
</style>
<style name="credreamTheme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">?android:windowNoTitle</item>
<!-- 注意这里?android:windowNoTitle这句代码的意思是:这个属性的值引用的android:windowNoTitle这个属性,?android:windowNoTitle
这个属性为true这个android:windowFullscreen属性也为true,为false这个属性也为false。改了android:windowNoTitle这个属性
那么该属性也会跟着变 -->
<item name="android:textSize">18sp</item>
<!-- 设置该窗口中的显示的文字大小,和文字颜色 -->
<item name="android:textColor">#FFFFFF</item>
</style>
</resources>
-------------------------------------------------------------
/style/AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.credream.style"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/credreamTheme"
><!--
android:theme="@style/credreamTheme"这句话写到application节点下,代表该主题对整个应用都生效
android:theme="@style/credreamTheme"这句代码写到activity节点下代表该主题只针对这个activity生效 -->
<activity
android:label="@string/app_name"
android:name=".StyleActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
--------------------------------------------------------
c.这里主题,主要设置窗口的样式,没有标题,并且全屏显示
-------------------------------------------------------------
d.注意当主题里面的样式和控件属性的样式冲突的时候,它让控件属性的样式优先显示。
--------------------------------------------------------------------------------
-----------------
android样式和主题(style&theme)
--------------------------------------
1. android中的样式和CSS样式作用相似,都是用于为界面元素定义显示风格,它是一个包含一个或者多个view控件属性的集合。如:需要定义字体的颜色和大小。
在CSS中是这样定义的:
<style>
.itcast{COLOR:#0000CC;font-size:18px;}
</style>
可以像这样使用上面的css样式:<div class="itcast">javaeye</div>
在Android中可以这样定义样式:
在res/values/styles.xml文件中添加以下内容
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name=“itcast”> <!-- 为样式定义一个全局唯一的名字-->
<item name=“android:textSize”>18px</item> <!-- name属性的值为使用了该样式的View控件的属性 -->
<item name="android:textColor">#0000CC</item>
</style>
</resources>
在layout文件中可以像下面这样使用上面的android样式:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ....>
<TextView style="@style/itcast"
..... />
</LinearLayout>
-------------------------------------------------------
2.新建android项目:style
---------------------
a.样式:应用在具体的某个控件上。
/style/res/values/styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="textViewStyle"><!-- 给样式定义名称 -->
<!-- 这里为main.xml文件中的TextView控件定义样式,
android:textSize: 指定属性的名称
android:textColor:指定文本颜色
定义完成之后就可以在main.xml中使用该样式了。
使用的时候:style="@style/childStyle.lidewei" 这里是要使用的样式的名字:childStyle.lidewei
-->。
<item name="android:textSize">22sp</item>
<item name="android:textColor">#FF0000</item>
</style>
<style name="childStyle" parent="textViewStyle">
<!-- 这里可以使用子样式继承父样式的内容。 -->
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textColor">#00FF00</item>
</style>
<style name="childStyle.lidewei">
<!-- 这里是子样式继承父样式的第二种方法 lidewei是子样式的名字。childStyle是父样式的名字,用.号连接
lidewei继承childStyle,childStyle又继承textViewStyle样式
-->
<item name="android:textColor">#0000FF</item>
</style>
<style name="credreamTheme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">?android:windowNoTitle</item>
<!-- 注意这里?android:windowNoTitle这句代码的意思是:这个属性的值引用的android:windowNoTitle这个属性,?android:windowNoTitle
这个属性为true这个android:windowFullscreen属性也为true,为false这个属性也为false。改了android:windowNoTitle这个属性
那么该属性也会跟着变 -->
<item name="android:textSize">18sp</item>
<!-- 设置该窗口中的显示的文字大小,和文字颜色 -->
<item name="android:textColor">#FFFFFF</item>
</style>
</resources>
----------------------------------------------
/style/res/layout/main.xml
<?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"
>
<!-- 使用样式的方法
style="@style/textViewStyle"
style="@style/childStyle"
style="@style/childStyle.lidewei" -->
<TextView
style="@style/childStyle.lidewei"
android:text="@string/hello"
/>
</LinearLayout>
-------------------------------------
b.主题应用与整个应用,或者单个activity。
也是在values文件夹下style.xml文件中定义:这里不一定就叫style.xml也可以起其他名字
---------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="textViewStyle"><!-- 给样式定义名称 -->
<!-- 这里为main.xml文件中的TextView控件定义样式,
android:textSize: 指定属性的名称
android:textColor:指定文本颜色
定义完成之后就可以在main.xml中使用该样式了。
使用的时候:style="@style/childStyle.lidewei" 这里是要使用的样式的名字:childStyle.lidewei
-->。
<item name="android:textSize">22sp</item>
<item name="android:textColor">#FF0000</item>
</style>
<style name="childStyle" parent="textViewStyle">
<!-- 这里可以使用子样式继承父样式的内容。 -->
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textColor">#00FF00</item>
</style>
<style name="childStyle.lidewei">
<!-- 这里是子样式继承父样式的第二种方法 lidewei是子样式的名字。childStyle是父样式的名字,用.号连接
lidewei继承childStyle,childStyle又继承textViewStyle样式
-->
<item name="android:textColor">#0000FF</item>
</style>
<style name="credreamTheme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">?android:windowNoTitle</item>
<!-- 注意这里?android:windowNoTitle这句代码的意思是:这个属性的值引用的android:windowNoTitle这个属性,?android:windowNoTitle
这个属性为true这个android:windowFullscreen属性也为true,为false这个属性也为false。改了android:windowNoTitle这个属性
那么该属性也会跟着变 -->
<item name="android:textSize">18sp</item>
<!-- 设置该窗口中的显示的文字大小,和文字颜色 -->
<item name="android:textColor">#FFFFFF</item>
</style>
</resources>
-------------------------------------------------------------
/style/AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.credream.style"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/credreamTheme"
><!--
android:theme="@style/credreamTheme"这句话写到application节点下,代表该主题对整个应用都生效
android:theme="@style/credreamTheme"这句代码写到activity节点下代表该主题只针对这个activity生效 -->
<activity
android:label="@string/app_name"
android:name=".StyleActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
--------------------------------------------------------
c.这里主题,主要设置窗口的样式,没有标题,并且全屏显示
-------------------------------------------------------------
d.注意当主题里面的样式和控件属性的样式冲突的时候,它让控件属性的样式优先显示。
--------------------------------------------------------------------------------
相关文章推荐
- 定义控件android学习笔记---50_样式与主题,给控件使用样式,给应用使用主题
- android学习笔记---50_样式与主题,给控件使用样式,给应用使用主题
- 【Silverlight】Bing Maps开发应用与技巧六:使用样式美化图钉(Pushpin)控件的ToolTip外观
- 【Silverlight】Bing Maps开发应用与技巧六:使用样式美化图钉(Pushpin)控件的ToolTip外观
- 【Silverlight】Bing Maps开发应用与技巧六:使用样式美化图钉(Pushpin)控件的ToolTip外观 推荐
- Android学习笔记50:使用WebView控件浏览网页
- 流程图控件FlowChart.NET使用教程:设置图表样式和主题
- Android学习笔记50:使用WebView控件浏览网页
- 使用主题来自动包装控件样式
- 使用主题来自动包装控件样式
- Silverlight - 控件模板与样式使用一例
- Flex中通过设定fontFamily和fontWeight样式在TabBar控件中使用嵌入字体的例子
- Android广告图片轮播控件,支持无限循环和5种主题,可以灵活设置轮播样式、时间、位置、图片加载框架等!
- 8.常用控件_样式主题
- iOS开发UI篇—使用picker View控件完成一个简单的选餐应用
- iOS开发UI篇—使用picker View控件完成一个简单的选餐应用
- Dialog 样式 主题 标题 背景 使用【总结】
- 给服务器控件应用样式
- Repeater控件的嵌套使用、自定义分页及加链接,样式制定源代码。
- 一步一步学Silverlight 2系列(8):使用样式封装控件观感