android中UI设计里面常会用到的style和theme。
首先,style和theme都是资源,android提供了很多这样的默认资源。你可以来使用它们。同时你也可以自己定义style和theme。这非常的简单,只需要在res/values/这个路径里面新建一个.xml文件,而且他的根节点必须是<resources>.对每一个style和theme,给<style>element增加一个全局唯一的名字,也可以选择增加一个父类属性,我们写的style和theme就会继承这个父类的属性。style和theme的定义格式相同。不过style是针对view来说的,比如TextView,EditText这些,而theme必须针对整个activity或者整个程序,你必须在AndroidManifest.xml中的<application>或者<activity>中定义。
先来看看style,比如如下一段代码:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="CodeFont" parent="@android:style/TextAppearance.Medium">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textColor">#00FF00</item>
<item name="android:typeface">monospace</item>
</style>
</resources>
可以看到这个style的名字为CodeFont。 parent后面就是父类的style, CodeFont继承这个父类的属性。可以看到这个父类的style是android中默认的,你也可以继承你自定义的style,这时候不需要再写parent属性,而是使用ContFont.red这样的方式,而且你可以继续继承,写成ContFont.red.small。 接下来每一个item定义一个属性。定义属性的最好方法就是在api文档里找到这个view的xml属性,比如在EditText中有InputType这个属性,那么在你的style里面你就可以来定义它。
这样一个style就写好了。
使用也非常简单,我们只要在写我们的view时,加入style标签就可以了,就像这样
<TextView
style="@style/CodeFont"
android:text="@string/hello" />
下面讲讲主题,前面已经说了。主题需要在AndroidManifest.xml中注册。如果你想整个程序都使用这个主题,你可以这样写
<application android:theme="@style/CustomTheme">
如果你只需要在某个Activity中使用主题,那么只要在Activity标签中写入android:theme=就可以了,android有很多好的默认主题,比如
<activity android:theme="@android:style/Theme.Dialog">
这就会使你的整个Activity变成一个对话框形式,或者,如果你希望背景是透明的,可以这样写
<activity android:theme="@android:style/Theme.Translucent">
同样的我们也可以继承父类theme,写法和style一样,就不赘述了。当然,和style一样,你也可以自己定义一个theme,写个例子
代码
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="CustomTheme">
<item name="android:windowNoTitle">true</item>
<item name="windowFrame">@drawable/screen_frame</item>
<item name="windowBackground">@drawable/screen_background_white</item>
<item name="panelForegroundColor">#FF000000</item>
<item name="panelBackgroundColor">#FFFFFFFF</item>
<item name="panelTextColor">?panelForegroundColor</item>
<item name="panelTextSize">14</item>
<item name="menuItemTextColor">?panelTextColor</item>
<item name="menuItemTextSize">?panelTextSize</item>
</style>
</resources>
如果你要在java代码中加载主题的话,只要用setTheme(R.style.CustomTheme)就可以了,不过记得一定要在初始化任何view之前,比如一定要放在我们常用的setContentView()之前。通常,我们不建议这么做。
来自原地址:http://www.cnblogs.com/noTice520/archive/2011/02/01/1948738.html
分享到:
相关推荐
2.4 在 Eclipse 中安裝 Android 外掛元件 第 3 章開發您的第一個程式 3.1 建立 Android 程式專案 3.2 修改 XML 介面 3.3 執行專案程式 3.4 程式執行的原理 第 4 章 Android 核心物件與程式架構 4.1Android 的...
前几年的Android应用源码Demo,主要面向的是学生毕业设计学习。
Android应用源码开发Demo,主要用于毕业设计学习。
Android style简单学习应用示例.zip项目安卓应用源码下载Android style简单学习应用示例.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
4、控制EditText中的TextView与hint的距离(使用android:paddingLeft="90sp" 5、.9.png的使用 6、是两个控件在同一行平均分布(这两个控件放在一个LinearLayout中,分别设置2控件的属性android:layout_weight="1
Android应用源码开发Demo,主要用于毕业设计学习。
android 界面设计专题, 近期很多网友对Android用户界面的设计表示很感兴趣,对于Android UI开发自绘控件和游戏制作而言掌握好绘图基础是必不可少的. 本次主要涉及以下四个包的相关内容: android.content.res 资源...
本文所要介绍的Android的Style设计就是提升用户体验的关键之一。Android上的Style分为了两个方面: 1.Theme是针对窗体级别的,改变窗体样式; 2.Style是针对窗体元素级别的,改变指定控件或者Layout的样式。 Android...
Android应用源码之style.zip项目安卓应用源码下载Android应用源码之style.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
Android应用源码之style1.zip项目安卓应用源码下载Android应用源码之style1.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
这其实是Android的设计思想,官方“一般”都会把属性值暴露出来,让显示和逻辑分开。因此,本项目并没有重新实现Dialog,而是通过封装了DialogFragment来让大家使用和定制Dialog更加的方便。 这里顺便贴一下...
这部分内容包含了多个精心设计的Android项目案例,从需求分析、设计思路到实现过程,都有详细的讲解和代码示例。学习者可以通过实际操作,深入了解Android开发的整个流程,提升自己的实战能力。 此外,我们还提供了...
Android应用源码之Win8Style.zip项目安卓应用源码下载Android应用源码之Win8Style.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...
谷歌 Android 讲的很清楚,看得很模糊,这本书让你可以对Adnroid 看的很全面。抢占Android 市场,可能就在某个行业的将来抢占了一定的地位。 * 国内第一本全面介绍Android SDK的简体中文...第10章 创意Android程序设计
<com.google.android.material.appbar.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> <androidx.appcompat.widget....
我 们都知道在Git 中想要过滤掉一些不想提交的文件,可以把相应的文件添加到.gitignore 中,而.gitignore 这个Android Studio 插件根据不同的语言来选择模板,就不用自己在费事添加一些文件了,而且还有自动补全功能...
第10章 创意Android程序设计 10.1 手机手电筒——PowerManager控制WakeLock并改变手机亮度 10.2 GPS轨迹记录器——利用LocationListener在地图上画图并换算距离 10.3 女性贴身看护——AlarmManager.DatePicker....