步步为营_Android开发课[37]_用户界面之theme和style

Focus on technology, enjoy life!—— QQ:804212028

浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305


  • 主题:用户界面之theme和style

    -theme和style很容易混淆,theme样式是用于添加到application或者activity中去的。而style样式是用于添加到view控件中去的。

样式的定义:

找到项目文件夹:res/valus/styles,styles.xml这个文件就是专门用来定义样式的一个文件夹。没有的话,自己创建一个。

代码如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="AppTheme" parent="AppBaseTheme">
        <item name="android:layout_width">fill_parent
        <item name="android:layout_height">wrap_content
        <item name="android:textColor">00FF00
    </style>
</resources>

样式的继承:

开发者都应该知道的一个样式可以继承平台原有的样式,也可以继承自定义的样式。继承平台原有的样式如下

<style name="GreenText" parent="@android:style/TextAppearance">
    <item name="android:textColor">00FF00
</style>

继承自定义样式只要在style的name属性上加一个前缀名就可以了。前缀名是自定义的那个style的名称,例如Red样式继承CodeFont的样式可以这样写:

<style name="CodeFont.Red">
    <item name="android:textColor">FF0000
</style>

这种继承方式还可以不断继承下去,Big再继承他们的样式:

<style name="CodeFont.Red.Big">
    <item name="android:textSize">30sp
</style>

Style 和 Theme的使用:

//在控件里使用styles样式
<TextView
    style="@style/CodeFont
    android:text="@string/hello"
 />
//在application中使用themes样式
<application android:theme="@style/MyTheme">
//在activity中使用themes样式
<activity android:theme="@style/MyTheme">

什么是Style,什么是Theme?

Style:是一个包含一种或者多种格式化属性的集合,我们可以将其用为一个单位用在布局XML单个元素当中。比如,我们可以定义一种风格来定义文本的字号大小和颜色,然后将其用在View元素的一个特定的实例。

Theme:是一个包含一种或者多种格式化属性的集合,我们可以将其为一个单位用在应用中所有的Activity当中(也就是application中)或者应用在某个Activity当 中。

来看看他们的定义:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- 定义style -->
<style name="myTextStyle" mce_bogus="1">
    <item name="android:textSize">20px</item>
    <item name="android:textColor">EC9237</item>
</style>
<style name="myTextStyle2" mce_bogus="1">
    <item name="android:textSize">14px</item>
    <item name="android:textColor">FF7F7C</item>
</style>
<!-- 定义theme -->
<style name="myTheme" mce_bogus="1">
    <item name="android:windowNoTitle">true</item>
    <item name="android:textSize">14px</item>
    <item name="android:textColor">FFFF7F7C</item>
</style>
</resources> 

从上面的例子可以看出,定义上style与定义theme基本相同,只是使用的地方不同,还有就是在一些标签的使用上: style 作用于view,theme作用于application或者Activity。

Focus on technology, enjoy life!—— QQ:804212028

浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305

时间: 2024-10-26 23:51:07

步步为营_Android开发课[37]_用户界面之theme和style的相关文章

步步为营_Android开发课[19]_用户界面之ListView(列表视图)

Focus on technology, enjoy life!-- QQ:804212028 浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305 主题:用户界面之ListView(列表视图) -ListView和TextView,Button等控件一样,一样的定义方式和显示方式,所以不再重复学了.但是Android开发中ListView经常适配一些适配器来显示,所以我们要学重点是是ListView的各种适配. List

步步为营_Android开发课[14]_用户界面之Layout(布局)

Focus on technology, enjoy life!-- QQ:804212028 浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305 主题:用户界面之Layout(布局) -在Android开发中我们有传说中的5大布局,它们的结合使用,画出了APP界面的条条框框. Android中常用的5大布局: 线性布局(LinearLayout):按照垂直或者水平方向布局的组件. 帧布局(FrameLayout):组件

步步为营_Android开发课[13]_用户界面之view(视图)

Focus on technology, enjoy life!-- QQ:804212028 浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305 主题:用户界面之view(视图) -View类是Android的一个超类,这个类几乎包含了所有的屏幕类型.每一个View都有一个用于绘图的画布,这个画布可以进行任意扩展.在游戏开发中叶可以自定义视图(View),这个画布的功能更能满足我们在游戏开发中的需要.在Android中

步步为营_Android开发课[30]_用户界面之ViewFlipper

Focus on technology, enjoy life!-- QQ:804212028 浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305 主题:用户界面之ViewFlipper - ViewFlipper多视图切换(实例) 实现效果: 左右滑动,模拟欢迎界面的图片切换. activity_main.xml: <?xml version="1.0" encoding="utf-8&quo

步步为营_Android开发课[21]_用户界面之Notification(通知栏)

Focus on technology, enjoy life!-- QQ:804212028 浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305 本文资源借助于网友:幻影浪子 - 主题:用户界面之Notification(通知栏) - Notification实例(含系统自带Notification+半自定义Notification+自定义Notification) activity_main.xml: <?xml v

步步为营_Android开发课[20]_用户界面之Menu(菜单)

Focus on technology, enjoy life!-- QQ:804212028 浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305 主题:用户界面之Menu(菜单) - item元素的属性说明如下: - id:唯一标示菜单的ID引用. - menuCategory:菜单分类. - orderInCategory:分类排序. - title:菜单标题字符串. - titleCondensed:浓缩标题,适合

步步为营_Android开发课[17]_用户界面之Button(按钮)

Focus on technology, enjoy life!-- QQ:804212028 浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305 主题:用户界面之Button(按钮) Button和ImageButton控件实例: activity_main.xml源代码: <?xml version="1.0" encoding="utf-8"?> <LinearLay

步步为营_Android开发课[32]_用户界面之Toast(吐司)

Focus on technology, enjoy life!-- QQ:804212028 浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305 主题:用户界面之Toast(吐司) -常用于APP中的一些小提示 Toast的结构分析: Toast toast=Toast.makeText(MainActivity.this, "默认的Toast", Toast.LENGTH_SHORT).show(); 第一

步步为营_Android开发课[31]_用户界面之Splash(闪屏启动)

Focus on technology, enjoy life!-- QQ:804212028 浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305 主题:用户界面之Splash(闪屏启动) - 用Splash做闪屏启动界面(实例): 实现效果: APP启动全屏显示一张背景图片,2s后跳转到MainActivity. AndroidManifest.xml: (在AndroidManifest中使用android:them