乙巳🐍年

acc8226 的博客

点九图是 Android 开发中用到的一种特殊格式的图片,文件名以 .9.png 命名。这种图片能告诉开发,图像哪一部分可以被拉伸,哪一部分不能被拉伸需要保持原有比列。运用点九图可以保证图片在不模糊变形的前提下做到自适应。点九图常用于对话框和聊天气泡背景图片中。

制作点九图有四个硬性要求,只要满足这四点,点九图就可以被正确识别。

要求一:
名称格式必须为:文件名称 .9.png。

要求二:
上下左右各留有 1px 的标识线区,此区内不能有半透明像素(特别注意:切图若有投影,不要泄漏到标识线区)。

要求三:
伸缩标识线与内间距标识线为不透明的纯黑色(#000000),光学标识线为不透明的纯红色(#ff0000)。

要求四:
点九图的特殊结构会导致其4个顶角处成为“绝对禁区”,这4个1像素×1像素的区域内不能有任何内容。

伸缩线详解

伸缩线标注了切图内的拉伸区域/收缩区域。一般来说点九图越小越好,因此通常切图尺寸都要小于控件尺寸,但这并不意味着不会出现切图尺寸大于控件尺寸的情况,在这种情况下,切图会根据伸缩线来进行缩小。

从实验的结果得到三个结论:

1.切图拉伸时,仅伸缩区会被拉伸。
2.切图收缩时,首先伸缩区会被收缩。
3.当伸缩区缩小到 0 之后,切图整体继续收缩(Android 4.3 之前表现不同,谷歌公布的 Android 系统 9 月份的月度版本分布图数据显示 4.3 之前的机型占比不足 7%,所以可忽略此情况)。

每个区域的拉伸/放缩长度与本区的伸缩标识线长度成正比。

内间距线详解

内间距线所标注的是控件的内间距,而不是点九图的内间距,所以,内间距线跟点九图本身并没有直接的联系。

1.横向内间距线的左端到切图左端的距离为控件的左侧内间距值;
2.横向内间距线的右端到切图右端的距离为控件的右侧内间距值。

例如,对话框是圆角,文字需要被包裹在其内,如果纵向显示内容区域顶到两遍,显示的效果会是如下图。

虽然内间距线也可以画为多段,但是系统只关心最左端最右端的位置,所以多段内间距线是没有任何意义的。

点九图中的内间距线,仅在代码中没有指定Padding属性的时候才会生效,但这不代表可以忽略点九图中的内间距线。我建议没有特殊要求, 点 9 图都带上内边距线, 避免写padding具体的数值.

视觉边界布局(Optical bounds layout)

是在Android 4.3(Api level 18)中引入的一种新的布局对齐方式。

光学边界也叫做视觉边界,下图是一个带有投影的蓝色按钮切图。在视觉上,此图形的外轮廓是蓝色按钮所占区域,而不是切图实际所占区域。光学边界线标注的位置为投影的位置,表示此区域在视觉上不可察觉。

对于那些有透明空白边的控件来说,使用视觉边界布局在显示效果上更加整齐。 不然的话,要保证每个控件的空白透明边都是一样的才能保证内容对齐。

边界对齐了

注意:

  1. 最外边的 1px 线段必须是纯黑色(#000000),一点点的半透明的像素都不可以有,比如说 99% 的黑色或者是 1% 的投影都不可以有。(这1PX 像素在程序最终输出的效果中不会被显示),光学标识线为不透明的纯红色(#ff0000)。
  2. 文件的后缀名必须是 .9.png,不能是 .png 或者是 .9.png.png,这样的命名都会导致编译失败。
  3. 点九图的特殊结构会导致其 4 个顶角处成为“绝对禁区”,这 4 个 1 像素×1 像素的区域内不能有任何内容。
  4. 站在安卓开发的角度, 如果是纯色背景建议放在 drawable-nodpi 下, 如果是非纯色, 例如有边框, 按照行业标准一套图, 图简便放在 drawable-xxhdpi 下, 在加载背景的时候系统会进行缩放, 如果有条件多套图就多套图。

.9 图其他说明

.9 图放置在不同 dpi 文件夹下的效果

注: 若 .9 图可以设置为本身不透明,看实际需要了。例如以下就没有设置为透明。

.9 图放到 ldpi 的效果

和 xxdpi 的效果

参考

了解 Linux 常见命令

在使用 git 前,建议事先熟悉一些常见的 Linux bash 命令

  • 进入 xxx 目录 cd xxx
  • 移动$ mv [old-name] [new-name]
  • 删除单个文件 $ rm test.txt删除当前目录下的一个文件
  • 当前目录下建立文件夹 $ mkdir [folder-name]
  • 显示当前目录 $ pwd
  • 查看该目录下的文件和文件夹 $ ls -al
  • 查看该目录下的文件和文件夹包含隐藏目录 $ ls -ah

配置 config

可以通过 git config rexx.aa.bb cc, git config aa.bb.cc 'dd' 进行设置。
每一条命令都在 .git/config 文件中添加一行。如果该远程部分不存在,那么你发出的第一条命令将在该文件中为它创建。

阅读全文 »

Git 安装

Linux 上安装 Git

首先,你可以试着输入 Git,看看系统有没有安装 Git。有很多 Linux 系统会友好地告诉你 Git 没有安装,还会告诉你如何安装 Git。如果你碰巧用 Debian 或 Ubuntu,通过一条 sudo apt install git可以直接完成 Git 的安装。

以新版 Fedora 为例,如果你在使用它(或与之紧密相关的基于 RPM 的发行版,如 RHEL 或 CentOS),你可以使用 dnf。否则通过这条命令 sudo yum install git 可以完成安装。

如果是其他 Linux 版本,可以直接通过源码安装。先从 Git 官网下载源码。

git 源码官网
https://mirrors.edge.kernel.org/pub/software/scm/git/

git-2.40.0.tar.gz
https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.40.0.tar.gz

阅读全文 »

XStream 是一个简单的基于 Java 库,Java 对象序列化到 XML,反之亦然(即:可以轻易的将 Java 对象和 xml 文档相互转换)。

特点

  • 使用方便 - XStream 的 API 提供了一个高层次外观,以简化常用的用例。
  • 无需创建映射 - XStream 的 API 提供了默认的映射大部分对象序列化。
  • 性能 - XStream 快速和低内存占用,适合于大对象图或系统。
  • 干净的XML - XStream 创建一个干净和紧凑 XML 结果,这很容易阅读。
  • 不需要修改对象 - XStream 可序列化的内部字段,如私有和最终字段,支持非公有制和内部类。默认构造函数不是强制性的要求。
  • 完整对象图支持 - XStream 允许保持在对象模型中遇到的重复引用,并支持循环引用。
  • 可自定义的转换策略 - 定制策略可以允许特定类型的定制被表示为XML的注册。
  • 安全框架 - XStream 提供了一个公平控制有关解组的类型,以防止操纵输入安全问题。
  • 错误消息 - 出现异常是由于格式不正确的XML时,XStream 抛出一个统一的例外,提供了详细的诊断,以解决这个问题。
  • 另一种输出格式 - XStream 支持其它的输出格式,如 JSON。

常见用途

传输, 持久化, 配置, 单元测试

阅读全文 »

SDK

Android 开发所需的 SDK,下载并解压后,将解压出的整个文件夹复制或者移动到 your sdk 路径/platforms文件夹,然后打开 SDK Manager,打开 Tools(工具)菜单选择 Options (选项)菜单项打开 Android SDK Manager Setting 对话框,点击 Clear Cache (清除缓存)按钮,然后重启 Eclipse(或 Android Studio) 和 SDK Manager。

平台版本 API LeveL 版本名称
13 33 Android 13 / Android T/ Tiramisu 提拉米苏
12 32 Android 12 / S_V2 / sv2 / Snow Cone / 刨冰
12 31 Android 12 / Android S / Snow Cone / 刨冰
11 30 Android 11 / Android R / Red Velvet Cake / RVC / 红丝绒蛋糕
10 29 Android 10 / Android Q (Android 系统将直接被称为 Android 10,不再使用甜品做代号)
9.0 28 Android 9 / Android P (Pie)
8.1 27 Oreo_MR1(Android O)(奥利奥)
8.0 26 Oreo(Android O)(奥利奥)
7.1 25 Nougat(Android N_MR1)(牛轧糖)
7.0 24 Nougat(Android N)(牛轧糖)
6.0 23 Marshmallow(Android M)(棉花糖)
5.1 22 LOLLIPOP_MR1(Android L)(棒棒糖)
5.0 21 Lollipop(Android L)(棒棒糖)
4.4 19 KITKAT(奇巧巧克力)
4.3 18 JELLY_BEAN_MR2
4.2 4.2.2 17 JELLY_BEAN_MR1
4.1 4.1.1 16 JELLY_BEAN
4.0.3 4.0.4 15 ICE_CREAM_SANDWICH_MR1
4.0 4.01 4.02 14 ICE_CREAM_SANDWICH
3.2 13 HONEYCOMB_MR2
3.1.X 12 HONEYCOMB_MR1
3.0.X 11 HONEYCOMB
2.3.3 2.3.4 10 GINGERBREAD_MR1
阅读全文 »
0%