热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android学习笔记styletheme浅尝

在应用程序开发中,其中最重要的就是用户界面的设计,一个好的应用必然有一个好的用户体验,在AndroidOS中Style风格的设计是提高用户

   在应用程序开发中,其中最重要的就是用户界面的设计,一个好的应用必然有一个好的用户体验,在Android OS中Style风格的设计是提高用户体验的关键技术之一。在Android中有两种方式的风格Style和Theme

   1. 什么是Style?

   Style:是为View和window定义其视觉与风格的属性集合。它遵循的是与Web设计中层叠样式设计非常相似的设计理念--将内容与风格分开,如我们设计一个button,我们可以将button这个控件我们将其功能与它的视觉效果分开设计。所以在定义Style文件时要与layout中.xml文件分开。一般我们保存在/res/values文件下。

   2. 什么是Theme?

   Theme:它是一种适用于整个Activity或者Application的Sytle,也就是说Android所提供的两种Style,style是应用在控件之上,而theme是应用在整个窗体之上。

  Style的实现:我们以自定义一个对话框为例(在API Demo里有很多很好的例子)效果如图:

  

  首先我们要设计一个呈现给用户的对话框的风格,这里通过xml画一个简单的图形,在/res/drawble下建一个bg.xml文件:

 



 

   这是一个简单的画图效果,通过它我们可以设计我们的窗口风格,从SDK文档中我们可以看到它所有的属性:

 

  在定义这个xml文件的时候需要注意一点就是shape必须为跟节点,它主要属性为android:shape,用来定义填充view的图形形状:

             "rectangle" :矩形

         "oval"           :椭圆

         "line"            :水平线

         "ring"            :环形

  用来定义渐变颜色

  android:angle: 用来定义颜色渐变的角度,为integer类型,0表示从左到右,90表示从下到上,该值必须为45的倍数;

  android:centerX:为渐变色中心相对X抽的位置范围从0到1.0,如果android:type="linear"时,该属性不可用;

  android:centerY:为渐变色中心相对Y抽的位置范围从0到1.0,如果android:type="linear"时,该属性不可用;

  android:centerColor:为可选值,中间色用来分开开始与结束色.

  定义填充色

  定义边色以及边的形式为虚线还是实线以及粗细

  当shape为矩形时定义其四角为圆形角

 



 

以上简单介绍了下shape的应用,在定义完装载我们的view的窗口后我们定义其风格,在/res/values下建立一个styles.xml文件,如下:

 

其中resources为根节点,第一个定义了其应用程序的风格,也就是activity的风格,而这里我们继续了android中Dialog的风格, name属性为我们定义的风格名称,parent的值为继承的风格的位置;

下有个item元素,如第二个风格Text,这个是我们建立的用来实现TextView的风格,该下的元素item就是TextView的属性,每个item对应一个属性;

style样式的使用:

layout布局文件下建立一个.xml文件:

style="@style/Text"就实现了其风格的引用;

最后建立我们的Activity:

最后需要在AndroidManifet.xml文件下加入风格:

      android:theme="@style/Theme.CustomDialog">

 



 

至此,大概效果已经实现了,许多详细的设计参考SDK文档。

 

 

-----------------------------------------------------------------------------------------水平有限,错误之处还望指教,谢谢~~


推荐阅读
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
  • 掌握Android UI设计:利用ZoomControls实现图片缩放功能
    本文介绍了如何在Android应用中通过使用ZoomControls组件来实现图片的缩放功能。ZoomControls提供了一种简单且直观的方式,让用户可以通过点击放大和缩小按钮来调整图片的显示大小。文章详细讲解了ZoomControls的基本用法、布局设置以及与ImageView的结合使用方法,适合初学者快速掌握Android UI设计中的这一重要功能。 ... [详细]
  • 技术分享:深入解析GestureDetector手势识别机制
    技术分享:深入解析GestureDetector手势识别机制 ... [详细]
  • 深入解析 Android 选择器与形状绘制技术
    本文深入探讨了 Android 中选择器(Selector)与形状绘制(Shape Drawing)技术的应用与实现。重点分析了 `Selector` 的 `item` 元素,其中包括 `android:drawable` 属性的使用方法及其在不同状态下的表现。此外,还详细介绍了如何通过 XML 定义复杂的形状和渐变效果,以提升 UI 设计的灵活性和美观性。 ... [详细]
  • 在Delphi7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本。定义如下:1234 ... [详细]
  • 本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ... [详细]
  • ButterKnife 是一款用于 Android 开发的注解库,主要用于简化视图和事件绑定。本文详细介绍了 ButterKnife 的基础用法,包括如何通过注解实现字段和方法的绑定,以及在实际项目中的应用示例。此外,文章还提到了截至 2016 年 4 月 29 日,ButterKnife 的最新版本为 8.0.1,为开发者提供了最新的功能和性能优化。 ... [详细]
  • 本文介绍了UUID(通用唯一标识符)的概念及其在JavaScript中生成Java兼容UUID的代码实现与优化技巧。UUID是一个128位的唯一标识符,广泛应用于分布式系统中以确保唯一性。文章详细探讨了如何利用JavaScript生成符合Java标准的UUID,并提供了多种优化方法,以提高生成效率和兼容性。 ... [详细]
  • 在处理遗留数据库的映射时,反向工程是一个重要的初始步骤。由于实体模式已经在数据库系统中存在,Hibernate 提供了自动化工具来简化这一过程,帮助开发人员快速生成持久化类和映射文件。通过反向工程,可以显著提高开发效率并减少手动配置的错误。此外,该工具还支持对现有数据库结构进行分析,自动生成符合 Hibernate 规范的配置文件,从而加速项目的启动和开发周期。 ... [详细]
  • 本文探讨了利用Java实现WebSocket实时消息推送技术的方法。与传统的轮询、长连接或短连接等方案相比,WebSocket提供了一种更为高效和低延迟的双向通信机制。通过建立持久连接,服务器能够主动向客户端推送数据,从而实现真正的实时消息传递。此外,本文还介绍了WebSocket在实际应用中的优势和应用场景,并提供了详细的实现步骤和技术细节。 ... [详细]
  • 在Android平台中,播放音频的采样率通常固定为44.1kHz,而录音的采样率则固定为8kHz。为了确保音频设备的正常工作,底层驱动必须预先设定这些固定的采样率。当上层应用提供的采样率与这些预设值不匹配时,需要通过重采样(resample)技术来调整采样率,以保证音频数据的正确处理和传输。本文将详细探讨FFMpeg在音频处理中的基础理论及重采样技术的应用。 ... [详细]
  • 在处理 XML 数据时,如果需要解析 `` 标签的内容,可以采用 Pull 解析方法。Pull 解析是一种高效的 XML 解析方式,适用于流式数据处理。具体实现中,可以通过 Java 的 `XmlPullParser` 或其他类似的库来逐步读取和解析 XML 文档中的 `` 元素。这样不仅能够提高解析效率,还能减少内存占用。本文将详细介绍如何使用 Pull 解析方法来提取 `` 标签的内容,并提供一个示例代码,帮助开发者快速解决问题。 ... [详细]
  • 深入解析 Android 中 EditText 的 getLayoutParams 方法及其代码应用实例 ... [详细]
  • 设计实战 | 10个Kotlin项目深度解析:首页模块开发详解
    设计实战 | 10个Kotlin项目深度解析:首页模块开发详解 ... [详细]
author-avatar
黄宗翰琼琦莉雯
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有