Android开发技巧——写一个StepView

在我们的应用开发中,有些业务流程会涉及到多个步骤,或者是多个状态的转化,因此,会需要有相关的设计来展示该业务流程。比如《停车王》应用里的添加车牌的步骤。 通常,我们会把这类控件称为“StepView”。上图的这种设计相对来说还是比较简单的,下面我们以它为例,来一步步写我们的“StepView”。那么,实现这样的一个“StepView”,我们会需要哪些知识呢?所需知识 布局测量 图形文字绘制 文...
阅读(272) 评论(0)

Android开发技巧——实现设计师给出的视觉居中的布局

本篇主要是对自定义控件的测量方法(onMeasure(int widthMeasureSpec, int heightMeasureSpec)在实际场景中的运用。 在移动应用的设计中,经常有这样的界面:某个界面的元素非常少,比如空列表界面,或者某某操作成功的界面,只有一两个像素在中间。但是它们在某个布局里又不是数学上的那个居中,而是经过设计师调出来的“视觉居中”。这种“视觉居中”内部是怎么计算的,我...
阅读(211) 评论(0)

Gradle 1.12用户指南翻译——第六十三章. 构建比较

Gradle 提供了对两个构建的 结果(例如生成的二进制档案)进行比较的支持。为什么你可能需要对两个构建的结果进行比较,有几个原因。你可能想要比较: 比当前所使用的Gradle版本更新的版本的构建(即升级Gradle版本)。 由Apache Ant,Apache Maven 或其他工具执行的Gradle构建(即迁移到Gradle)。 同样原Gradle构建,同样的版本,但是比较构建前后的变化(即测试构建产生的更改)。 通过比较这些场景的构建,你可以明智地决定是否要对Gradle升级,迁移到Gradle,或...
阅读(162) 评论(0)

Gradle 1.12用户指南翻译——第六十二章. 嵌入 Gradle

62.1.Tooling API 简介 1.0 里程碑 3 的发布带来了新的 API 叫tooling API,可以用于嵌入 Gradle。这个API可以让你执行和监视构建,并向Gradle 查询有关构建的细节。它的主要受众是IDE,CI服务器,其他的UI作者,或者你的Gradle插件的集成测试。不过,它是向所有需要把Gradle嵌入到他们的应用的人开放的。 这个tooling API 的一个基本特征是它以一个版本独立的方式管理。这意味着,你可以让同样的API与不同的Gradle版本一起使用。Toolin...
阅读(298) 评论(0)

Gradle 1.12用户指南翻译——第六十一章. Gradle包装器

Gradle 包装器(下称“包装器”)是启动 Gradle 构建的首选方法。这个包装器是Windows上的一个批处理脚本和以及用于其他操作系统的shell 脚本。当你通过包装器启动 Gradle 构建时,Gradle 将被自动下载并用于运行这个构建。 The wrapper is something you should check into version control. By distributing the wrapper with your project, anyone can work wi...
阅读(163) 评论(0)

Gradle 1.12用户指南翻译——第六十章. 初始化脚本

第六十章. 初始化脚本 Gradle提供了一种强大的机制,可以让你基于当前的环境自定义构建。这种机制还支持希望与Gradle集成的工具。 60.1. 基本用法 初始化脚本 (也称为init scripts和Gradle的其他脚本类似。然而,这些脚本是在构建之前就运行的。下面是几种可能的用法: 设置一些企业范围的配置,比如在何处查找自定义插件。 设置基于当前环境的属性,比如开发人员的机器与持续集成服务器的属性。 提供构建所需要的有关用户的个人信息,比如仓库或数据库身份验证凭据。 定义机器的一些特定信息,比...
阅读(439) 评论(0)

Gradle 1.12用户指南翻译——第五十九章. 组织构建逻辑

Gradle 提供了多种方式来组织你的构建逻辑。首先,你可以把你的构建逻辑直接放到一个任务的action闭包里。如果两个任务有相同的逻辑,你可以把这段逻辑抽取为一个方法。如果一个多项目构建中的多个项目有相同的逻辑,你可以把这个方法定义在父项目里。如果构建逻辑通过方法来正确建模比较复杂的话,你就要使用面向对象的模型了。[25] 这对Gradle来说很简单。只需要把你的类放在一个确定的目录,Gradle会自动地对它们编译,并且把它们加入到你的构建脚本的classpath中。 下面是你可以组织你的构建逻辑的方法...
阅读(127) 评论(0)

Gradle 1.12用户指南翻译——第五十八章. 编写自定义插件

Gradle 插件打包了可以复用的构建逻辑块,这些逻辑可以在不同的项目和构建中使用。Gradke 允许你实现你自己的自定义插件,因此你可以重用你的构建逻辑,并且与他人分享。 你可以使用你喜欢的任何一种语言来实现一个自定义插件,只要这个实现最终能够提供编译的字节码。在这里的例子中,我们将使用Gradle来作为实现语言。如果你想的话,你也可以使用Java或者是Scala来代替。...
阅读(412) 评论(0)

Gradle 1.12用户指南翻译——第五十七章. 编写自定义任务类

Gradle 支持两种类型的任务。一种是简单的任务,你可以使用一个action闭包来定义它。这样的任务我们在第六章, 构建脚本基础已经看到过。对于这种类型的任务,action闭包决定了这个任务的行为。这个类型的任务适合于实现在构建脚本中只执行一次的任务。 另一种类型的任务是增强型的任务,它的任务内置在任务中,并且这个任务提供了一些属性能够让你用于配置其行为。我们在 第十五章 有关任务的详细信息中看到过它们。大部分的Gradle插件都使用增强型的任务。使用这些增强型的任务,你不需要像使用简单任务一样去实现这...
阅读(246) 评论(0)

Gradle 1.12用户指南翻译——第五十六章. 多项目构建

对多项目构建的强大支持是 Gradle 的独特优点之一。本主题也是最具智力挑战性的。 56.1. 跨项目配置 让我们从一个非常简单的多项目构建开始。在全部 Gradle 的核心都是作为一个通用构建工具后,我们的项目并不一定得是个 java 项目。我们的第一个例子是关于海洋生活的。 56.1.1. 配置和执行 第 55.1 节,“构建阶段”描述了每个 Gradle 构建阶段。让我们放大一个多项目构建的配置和执行阶段。所有项目的配置都发生在任何任务执行之前。这意味着,当从一个项目请求一个任务时,首先会配置...
阅读(366) 评论(0)

Android开发技巧——FlingViewPager与RecyclerPagerAdapter

刚才看了一下,距我上次写原创博客已经有三个多月了。当然,这三个多月一直没有去写博客的借口有很多,这次就不赘述了。 本篇讲的是在上次项目开发中封装的两个类,这两个类除了正好是分别继承自ViewPager及PagerAdapter,并没有其他更多的联系,所以我主要是介绍一下它们所涉及到的一些比较实用的开发技巧及知识。FlingViewPager首先说一下我写这个类的场景。在我们的一个项目中,有以下需求...
阅读(333) 评论(0)

Gradle 1.12用户指南翻译——第五十五章. 构建的生命周期

我们之前说,Gradle 的核心是一种以依赖为基础进行编程的语言。用 Gradle 的话说,这意味着您可以定义任务和任务之间的依赖。Gradle 保证这些任务按照它们的依赖关系的顺序进行执行,并且每个任务都只执行一次。这些任务形成一个有向无环图。有许多构建工具在它们执行任务时生成了依赖关系图。Gradle 则在所有任务执行之前生成这这个完整的依赖关系图。这是 Gradle 的核心,它使得很多事情由不可能变得可能。 你的构建脚本能配置这个依赖关系图。因此严格来说,它们都是构建配置脚本。 55.1. 构建阶...
阅读(445) 评论(0)

Gradle 1.12用户指南翻译——第五十四章. 构建原生二进制文件

Gradle 对构建原生二进制文件的支持目前还是孵化阶段。请务必注意,在以后的 Gradle 版本中,相关的 DSL 和其他配置可能会有所改变。 不同的原生二进制插件添加了对从C++,C,Objective-C,Objective-C++以及汇编源文件构建原生软件组件的支持。虽然对于这种软件开发的空间,已经有许多优秀的构建工具存在,但是Gradle 向开发人员提供的是它的强大特征和灵活性,以及在依赖管理实践上,在JVM开发空间上更为传统的发现。 54.1. 工具链支持 Gradle 提供了使用不同的工具链...
阅读(297) 评论(0)

Gradle 1.12用户指南翻译——第五十三章. 签名插件

第五十三章. 签名插件 签名插件添加了对构件的文件和artifacts进行数字签名的功能。这些数字签名可以用于证明使用这个签名的artifact是谁构建的,以及其他的信息,比如签名是什么时候生成的。 签名插件目前只提供了生成PGP 签名的支持(这是发布到Maven 中央库所需的签名格式)。 53.1. 用法 要使用 Signing 插件,请在构建脚本中包含以下语句: 示例 53.1. 使用Signing插件 build.gradle apply plugin: 'signing' 53.2. 签名凭...
阅读(544) 评论(0)

Android开发技巧——使用Drawable实现小红点

在产品的设计中,总难免需要我们开发去实现各种各样的小红点,小红点,小红点。 通常,我们可能会这样做: 用一个View实现小红点,放在相对布局里,设置好内边距或外边距,让它位于图片的右上角。 或者是给图片套一个相对布局,设置好图片的外边距,然后把表示小红点的View放在这个相对布局里面的右上角。这个应该是最简洁直观的实现方法。然而,它也有它的局限之处。比如在我这次的开发当中,一开始只...
阅读(1128) 评论(2)
204条 共14页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:1773881次
    • 积分:12672
    • 等级:
    • 排名:第984名
    • 原创:128篇
    • 转载:3篇
    • 译文:74篇
    • 评论:807条
    QQ群
    博客专栏
    最新评论
    欢迎访问我的博客
    我的公众号
    微信关注我的公众号
    站长统计