灵通163百科在线-实用的手机,证券免费资源网站

您现在的位置:首页 > Android资源 > 主题资源 >

Android从零开始:创建样式和主题

教程来源:www.lt163.com     点击数:     更新时间:2018-01-12 12:42

原文:Android From Scratch: Creating Styles and Themes 

作为一个安卓开发者,我们一般把焦点放在app的功能上。但是仅仅有功能是不够的。在拥有上百万app的Google Play上面,界面和功能一样重要。如果你不相信,可以去看看Google Play Top Charts中的app。

有两种方法可以改变app的外观。第一种就是直接在xml中直接修改View的属性。这种方法只适合于只有几个View和Activity的简单app。第二种方法就是创建自定义的样式和主题。如果你对web开发熟悉,第一种方法类似于使用内联的CSS样式,而第二种类似于使用style sheets。

本文,你将学到如何创建自定义的样式和主题。你还能学到如何使用Android Studio的工具和快捷方式来加快样式的创建。

1. 创建Styles

样式显然是应用到UI控件上面的。因此,让我们先创建一个新的空activity并添加两个View到布局文件中。

<View android:layout_width="100dp"     android:layout_height="100dp"     android:layout_margin="5dp"     android:background="#009688"     android:id="@+id/box1" />   <View android:layout_width="100dp"     android:layout_height="100dp"     android:background="#00BCD4"     android:layout_margin="5dp"     android:id="@+id/box2" />

就如你看到的,属性layout_width 和 layout_margin是被显式的定义在每个View中。

要为这个View创建一个新的样式,右键它并选择Refactor > Extract > Style。

现在你会看到一个对话框,里面可以为样式设置名字,还可以选择要包含的属性。我们命名为MyBox,并选择除了background之外的所有属性。

当你点击ok之后,你会看到第一个View的代码已经变了。

<View android:background="#009688"     android:id="@+id/box1"     style="@style/MyBox" />

这个View现在有了一个指向MyBox 样式的style属性。你可以打开res/values/styles.xml来查看这个样式的定义

<style name="MyBox">     <item name="android:layout_width">100dp</item>     <item name="android:layout_height">100dp</item>     <item name="android:layout_margin">5dp</item> </style>

一旦一个样式被定义好,你就可以应用到任何View中。比如,把MyBox应用到第二个View:

<View android:background="#00BCD4"     android:id="@+id/box2"     style="@style/MyBox" />

应用了样式之后,activity中的两个View就是这个样子:


2. 继承 Styles

Android允许你在其他样式的基础上创建一个新样式。换句话说就是允许你继承style。

继承一个style有两种不同的语法。第一种语法被称为隐式的语法,使用.号作为标记。比如,如果你要创建两个parent为MyBox,名为 TEAL和CYAN的子样式:

<style name="MyBox.TEAL">     <item name="android:background">#009688</item> </style>   <style name="MyBox.CYAN">     <item name="android:background">#00BCD4</item> </style>

你也许能猜到MyBox.TEAL 和 MyBox.CYAN 都具有MyBox的所有属性,除此之外,它们还有android:background属性。

第二种语法通常叫做显式的语法。它使用一个parent属性,其值就是parent style的名称。这里是一个定义名为TealBox的样式的代码片段:

<style name="TealBox" parent="MyBox">     <item name="android:background">#009688</item> </style>

应用一个派生的style跟应用一个普通的没有区别。

<View android:id="@+id/box1"     style="@style/TealBox" />   <View android:id="@+id/box2"     style="@style/MyBox.CYAN" />

大多数开发者在继承自己的style时使用隐式的语法,而继承系统style时使用显式的语法。

3. 创建Themes
没有相关教程
UC浏览器 最先进实用的手机端浏览器,最大限度节省页面浏览流量,点击下载
老虎地图 绿色纯免费GPS定位省流量的最佳手机地图,点击下载
网秦手机安全系列 手机杀毒防盗,防火墙,构建手机安全,点击进入
塞班精品游戏 最流行最给力的塞班S60免签名名精品游戏合集,点击进入
阿里通 手机上轻松拨打网络电话和收发短信,高音质超省话费,资费标准
爱科手机电话 国内最好的手机网络电话领先品牌,价格低廉,点击查看
愤怒的小鸟2 全民挑战超流行休闲游戏力推新作-愤怒的小鸟2,点击查看
魔力旺旺 淘宝卖家首选的交易工具

资源下载排行
文章阅读排行