iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >android 开发教程之日历项目实践(三)
  • 618
分享到

android 开发教程之日历项目实践(三)

程之教程Android 2022-06-06 11:06:50 618人浏览 泡泡鱼
摘要

二、创建样式 日历显示的表格线,使用 Cell 填充图形的边框来实现,为了统一,我们先定义边框线的颜色及线条精细。 另外还要定义一系统填充样式等。 创建 color: colo

二、创建样式

日历显示的表格线,使用 Cell 填充图形的边框来实现,为了统一,我们先定义边框线的颜色及线条精细。

另外还要定义一系统填充样式等。

创建 color

color_calendar_border 表格线
color_calendar_title_greGorian 标题栏日期年月文字的颜色color_calendar_title_lunar 标题栏农历color_calendar_title_startcolor_calendar_title_endcolor_calendar_title_addition 标题栏 节日,节气color_calendar_weekindex 年单位周序号color_calendar_weekindex_backgroundcolor_calendar_weekend 周末color_calendar_weekend_backgroundcolor_calendar_header 表头color_calendar_header_backgroundcolor_calendar_outrange 非本月日期color_calendar_outrange_backgroundcolor_calendar_nORMal_gregorian 公历日期color_calendar_normal_lunar  农历日期color_calendar_normal_backgroundcolor_calendar_today_gregorian 今天公历日期color_calendar_today_lunar 今天农历日期color_calendar_today_backgroundcolor_calendar_solarterm 节气color_calendar_festival 节日color_calendar_pressed 点击单元格填充背景
color_calendar_focused 焦点单元格填充背景

点击 下图 菜单 Search 下面的图标(New Android XML File)

选择 Resource Type -> Values,输入文件名 -> colors,选择 Root Element -> resources,点击 Finish。


定义 color_calendar_border
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="color_calendar_border">#3fff</color>
<color name="color_calendar_title_gregorian">#cfff</color>
<color name="color_calendar_title_lunar">#cfff</color>
<color name="color_calendar_title_start">#c000</color>
<color name="color_calendar_title_end">#6000</color>
<color name="color_calendar_title_addition">#f63</color>
<color name="color_calendar_weekindex">#3fff</color>
<color name="color_calendar_weekindex_background">#369f</color>
<color name="color_calendar_weekend">#9fff</color>
<color name="color_calendar_weekend_background">#3f99</color>
<color name="color_calendar_header">#9fff</color>
<color name="color_calendar_header_background">#6000</color>
<color name="color_calendar_outrange">#3fff</color>
<color name="color_calendar_outrange_background">#3fff</color>
<color name="color_calendar_normal_gregorian">#cfff</color>
<color name="color_calendar_normal_lunar">#9fff</color>
<color name="color_calendar_normal_background">#0000</color>
<color name="color_calendar_today_gregorian">#cfff</color>
<color name="color_calendar_today_lunar">#9fff</color>
<color name="color_calendar_today_background">#06c</color>
<color name="color_calendar_solarterm">#c0c3</color>
<color name="color_calendar_festival">#cf90</color>
<color name="color_calendar_pressed">#306c</color>
<color name="color_calendar_focused">#606c</color>
</resources>

Color 的值由四部分组成:透明度,Red, Green, Blue,每部分可以用一位或两位十六进制数字表示,透明度可以省略。

如:

  ffff 或 ffffffff 表示不透明白色,前面的透明度可以省略:fff 或 ffffff

  7f00 表示半透明的红色

更多请查看:Http://developer.android.com/guide/topics/resources/more-resources.html#Color

将颜色定义统一放在一个文件中,是出于两点考虑,一是多处用到同一种颜色定义,这样一处修改,相应的位置都会跟着变,另外则是为了修改方便,无须到处去找某一个文件。上面的 color_calendar_border 被表格的各种状态填充图形用到,而像 color_calendar_weelndex_background 只有一处用到,如果不想统一管理,也可以不在这里定义,在定义 shape 时,直接使用固定值。

创建 dimen

点击 下图 菜单 Search 下面的图标(New Android XML File)



选择 Resource Type -> Values,输入文件名 -> dimens,选择 Root Element -> resources,点击 Finish。

完成的 xml 文件内容:
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="dimen_calendar_border">1dp</dimen>
</resources>

尺寸的单位主要有六种:dp, sp, pt, px, mm, in,更多介绍请参照:http://developer.android.com/guide/topics/resources/more-resources.html#Dimension
创建 Color State List

在我们的日历中,单元格有三种状态,分别是无焦点,按下,有焦点,为了在不同的状态下显示不同的颜色,可以定义 Color State List。

关于 Color State List,更多请参照:http://developer.android.com/guide/topics/resources/color-list-resource.html。

Color State List 列表

colorlist_calendar_normal
colorlist_calendar_outrange
colorlist_calendar_weekend
colorlist_calendar_today

点击 下图 菜单 Search 下面的图标(New Android XML File)

选择 Resource Type -> Drawable,输入文件名 -> colorlist_calendar_outrange,选择 Root Element -> selector,点击 Finish。

完成的 xml 文件
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="@color/color_calendar_pressed"/>
<item android:state_focused="true" android:color="@color/color_calendar_focused"/>
<item android:color="@color/color_calendar_outrange_background"/>
</selector>

其它也同样创建。

创建的 drawable

shape_calendar_titlebar.xml 主画面标题栏填充背景shape_calendar_header.xml 表头填充背景shape_calendar_cell_weekindex.xml 年为单元的周序号单元格填充背景shape_calendar_cell_weekend.xml 周末日期单元格填充背景shape_calendar_cell_normal.xml 当月普通日期单元格填充背景shape_calendar_cell_outrange.xml 非当前月日期单元格填充背景shape_calendar_cell_today.xml 今天单元格填充背景

点击 下图 菜单 Search 下面的图标(New Android XML File)

选择 Resource Type -> Drawable,输入文件名 -> shpae_calendar_titlebar,选择 Root Element -> shape,点击 Finish。

输入 shape 定义
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="3Dp" />
<gradient android:angle="90"
android:startColor="@color/color_calendar_title_start"
android:endColor="@color/color_calendar_title_end"
/>
</shape>

这段定义代码会帮我们生成一个圆角矩形,填充颜色是上下渐变的。

radius = 圆角大小

angle = 渐变填充方向(45的位数,0-360,90 表示从上往下渐变填充)

startColor, endColor = 填充的起始与终止颜色定义

其它的也按此一一创建,但表格的填充矩形,不要圆角,删除 radius 或设为 0

如:shape_calendar_cell_outrange.xml
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/colorlist_calendar_outrange" />
<stroke android:width="@dimen/dimen_calendar_border"
android:color="@color/color_calendar_border" />
</shape>

solid = 填充色,这里用前面定义的 color state list,来实现不同状态下,填充不同颜色。

stroke = 矩形边框,width = 边框线粗细, color = 边框线颜色

创建 style

打开 res/styles.xml,添加样式定义。由于样式与画面设计相关,在我们设计界面时,还要相应调整,所以在使用时,一一添加。这里给出一个 sample:
代码如下:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!--
Base application theme, dependent on api level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>
<style name="style_calendar_title">
<item name="android:background">@drawable/shape_calendar_titlebar</item>
</style>
<style name="style_calendar_title_gregorian">
<item name="android:textSize">36sp</item>
<item name="android:textStyle">bold</item>
<item name="android:textColor">@color/color_calendar_title_gregorian</item>
<item name="android:layout_marginLeft">25dp</item>
</style>
... ...
</resources>

您可能感兴趣的文章:Android 一个日历控件的实现代码android 开发教程之日历项目实践(一)Android实现自定义日历android 开发教程之日历项目实践(二)java制作android 日历代码分享Android自定义日历控件实例详解Android实现日历控件示例代码Android自定义日历Calender代码实现android自定义view之实现日历界面实例基于Android week view仿小米和iphone日历效果


--结束END--

本文标题: android 开发教程之日历项目实践(三)

本文链接: https://www.lsjlt.com/news/28068.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue.js项目实践的方法教程
    这篇文章主要介绍“Vue.js项目实践的方法教程”,在日常操作中,相信很多人在Vue.js项目实践的方法教程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue.js项目实践...
    99+
    2024-04-02
  • Android开发实战闹钟项目
    本文实例为大家分享了Android实战闹钟项目的具体代码,供大家参考,具体内容如下 一、闹钟功能的介绍以及界面的展示 该闹钟是根据我们手机闹钟设计的一个简单的闹钟APP,其中包含时钟...
    99+
    2024-04-02
  • C++项目开发经验分享:C++开发项目的实践经验
    C++是一种编程语言,特别适合用于开发高性能和复杂的应用程序。作为一名C++开发者,我有幸参与了多个C++项目的开发,并积累了一些宝贵的实践经验。在本文中,我想分享一些关于C++项目开发的经验和技巧。首先,一个成功的C++项目需要良好的架构...
    99+
    2023-11-22
    实践经验 C++开发 项目经验
  • Vue3结合TypeScript项目开发实践总结
    目录概述1、compositon Api1、ref 和 reactive的区别?2、周期函数3、store使用4、router的使用2、关注点分离3、TypeScript支持概述 ...
    99+
    2024-04-02
  • Spring Boot 教程之创建项目的三种方式
    目录一、前言二、Spring Boot 简介三、如何创建 Spring Boot 项目在线创建IntelliJ IDEA 创建Maven 创建四、常见项目结构代码层资源文件结构五、@...
    99+
    2024-04-02
  • Jenkins自动部署SpringBoot项目实践教程
    目录1、Jenkins安装2、Jenkins插件安装3、点击添加凭据4、Jenkins环境配置4.1、全局配置4.2、系统配置5、Jenkins自动部署SpringBoot项目6、遇...
    99+
    2024-04-02
  • web前端教程:Vue项目开发流程
    一、企业项目开发流程产品提需求交互设计出原型设计视觉设计出UI设计图前端开发出页面模板server端存取数据库验收测试二、为什么要使用vue: https://cn.vuejs.org/v2/guide/comparison.ht...
    99+
    2023-06-05
  • Go语言项目开发实践中的最佳实践分享
    Go语言近年来在软件开发领域越来越受到关注,成为了很多开发者的首选语言。其简洁的语法、高效的并发模型,以及强大的标准库,使得Go语言在开发项目时具有很大的优势。然而,在实际项目开发中,还是存在一些需要注意的地方,本文将分享一些Go语言项目开...
    99+
    2023-11-03
    合理利用并发编程能力 合理处理错误
  • SpringBoot开发教程之AOP日志处理
    目录日志处理:需求分析实现过程:实验效果:参考文献:总结日志处理: 需求分析 日志处理需要记录的是: 请求的URL 访问者IP 调用的方法 传入...
    99+
    2024-04-02
  • SpringBoot项目实现短信发送接口开发的实践
    一. 短信接口实现 描述:请求第三方短信接口平台(而第三方短信平台的接口请求是webservice方式实现的),此时我们要测试接口是否通,要用的工具SoapUI测试工具, 不能用P...
    99+
    2024-04-02
  • MySQL优化教程之慢查询日志实践
    目录一、慢查询日志概念二、慢查询日志实践1. 打开慢查询日志开关slow_query_log2. 设置合理的、业务可以接受的慢查询时间上限long_query_time3. 压测执行...
    99+
    2024-04-02
  • Android开发之项目模块化的示例分析
    这篇文章主要为大家展示了“Android开发之项目模块化的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Android开发之项目模块化的示例分析”这篇文章吧。项目协同项目协同,也叫多项目...
    99+
    2023-05-30
    android
  • 如何在Android 开发中实现一个日历控件
    这期内容当中小编将会给大家带来有关如何在Android 开发中实现一个日历控件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、主要功能支持农历、节气、常用节假日2、日期范围设置,默认支持的最大日期范围[...
    99+
    2023-05-31
    android roi
  • Git与敏捷开发实践:项目经验分享
    随着技术的不断发展,软件开发行业也面临着各种挑战。为了更好地应对市场需求的变化和项目开发的复杂性,敏捷开发模式逐渐成为了主流。在敏捷开发中,版本控制系统Git也扮演了重要角色。本文将通过分享我在项目实践中的经验,探讨Git与敏捷开发的相互关...
    99+
    2023-11-02
    git 敏捷开发 项目经验
  • Android音视频开发之MediaPlayer使用教程
    目录MediaPlayer简单使用缺陷AndroidMediaPlayer播放器封装状态机编写内部类初始化函数方法和回调小结MediaPlayer Android多媒体框架支持播放提...
    99+
    2024-04-02
  • Git分布式开发实践:项目经验分享
    近年来,随着互联网技术的飞速发展,软件开发领域也迎来了巨大的变革。Git作为一种分布式版本控制工具,由于其卓越的性能和灵活的开发模式,逐渐成为开发者们首选的工具之一。而在实际的项目经验中,我们也深刻体会到了Git分布式开发的种种优势。首先,...
    99+
    2023-11-02
    实践 项目经验分享 Git分布式开发
  • Android开发笔记之Fragment的使用教程
    目录何为碎片特点如何引入碎片静态引入动态加载碎片的通信活动和碎片间的通信碎片和活动间的通信碎片和碎片间的通信何为碎片 官方文档中提到: A fragment represents a...
    99+
    2023-05-19
    Android Fragment Android Fragment使用
  • Android音视频开发之MediaExtactor使用教程
    目录前言MediaExtactor使用MediaExtactor加载音视频文件代码获取轨道代码提取轨道数据信息一些源码细节分析前言 在之前学习如何使用MediaPlayer后,了解到...
    99+
    2024-04-02
  • 探索Go语言开发的项目实践经验
    Go语言作为一门高效的编程语言,一直以其简洁、高效和并发性能出名。近年来,越来越多的开发者开始采用Go语言来开发各种项目。本文将探索一些使用Go语言开发项目的实践经验。首先,Go语言的静态类型和强类型特性,使其具有很强的可读性和可维护性。在...
    99+
    2023-11-04
    Go语言 实践经验 开发项目
  • 实践经验分享:高效开发Go语言项目
    Go语言是一种非常流行的编程语言,它被许多程序员和企业用来开发Web应用程序、网络服务、云计算和大数据应用等项目。在这篇文章中,我们将分享一些高效开发Go语言项目的实践经验,以帮助您更好地开发和管理Go语言项目。选择合适的框架和库Go语言有...
    99+
    2023-11-03
    高效编程 Go语言开发 实践经验
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作