Kyleduo's blog!


  • 首页

  • 归档

  • 标签

屏幕适配那些事(02)Android逻辑像素刨根问底

发表于 2016-10-24

屏幕适配是一个老生常谈的问题了,我用这三篇博客和大家讨论点屏幕适配相关的干货。

  • 01 屏幕适配和逻辑分辨率
  • 02 Android逻辑像素刨根问底
  • 03 几点建议

iOS的屏幕规格可以列举处理,iPhone4及更新的设备,只有4种规格,他们的逻辑分辨率像也是固定的。Android这边就比较复杂了,理论上可以出现无数种逻辑分辨率。Android的逻辑分辨率可以通过三个步骤推导得到:

  1. 获取屏幕像素密度。
  2. 计算逻辑像素密度 = 屏幕像素密度 / 基准屏幕像素密度。
  3. 计算逻辑分辨率 = 物理分辨率 / 逻辑像素密度。

以Nexus 5为例:

阅读全文 »

屏幕适配那些事(01)屏幕适配和逻辑分辨率

发表于 2016-10-24

屏幕适配是一个老生常谈的问题了,我用这三篇博客和大家讨论点屏幕适配相关的干货。

  • 01 屏幕适配和逻辑分辨率
  • 02 Android逻辑像素刨根问底
  • 03 几点建议

什么是屏幕适配?

我们先来给屏幕适配下一个定义:

屏幕适配是让一套UI在不同尺寸、不同分辨率和不同比例的屏幕上都能正常显示。

这里的“正常”两个字比较模糊,我来解释一下,设备的尺寸、分辨率、比例不同,但是系统在显示内容的时候,有一个虚拟的度量单位——逻辑像素——这也是我们下面一节要讨论的内容。我们姑且认为“更大的屏幕”(逻辑分辨率更高的屏幕)应该显示更多内容,拿iPhone/Android的内置应用的设计作为例子很合适,它们在不同的设备上都能“正常”显示。我们看一个例子,相同的一张图片,要求在屏幕中央显示,对比下面的第2/3/4张图,你会发现“正常”和“不正常”的区别。

normal_design

阅读全文 »

使用Fontmin精简ttf字体文件(Mac、Windows)

发表于 2016-09-27

使用自定义字体,可以丰富页面的显示效果。用作主题的字体可以动态下载,但是框架性的字体,内置字体文件还是最好的方案,但是带来的弊端就是安装包的增大,尤其是中文字体,哪怕只是覆盖常用字字库,字体文件也轻松上几十兆。

既然常用字体文件本身就存在覆盖字库的范围大小的问题,那么能不能让字体文件只覆盖需要的文字呢?答案是可以。

下面推荐的这款软件不仅高效解决了精简字库的问题,而且提供了方便的Mac/Windows客户端。

它就是Fontmin!

Github地址:https://github.com/ecomfe/fontmin

fontmin_preview

使用很简单,这里就不赘述了,下载即会,童叟无欺。至于效果,苹方细体,十几个字,精简之后4KB,完全无压力。

解决nginx出现403错误

发表于 2016-09-20

如果你在使用nginx的时候遇到了403错误,你应该看看本文提供的解决方法。

再一次遇到403问题,是因为最近搭建了一套CentOS 7的环境。之前搭建环境一直在使用CentOS 6.5,并没有遇到什么特别的不适,也遇到403错误但一般都是文件权限配置错误的问题。但是这次不同。

SELinux是Linux内核实现的一套MAC(Mandatory Access Control, 强制访问控制)安全机制。从CentOS 4开始加入到CentOS中。默认配置为Enforcing模式。我遇到的问题,就是SELinux引起的。

基础概念

阅读全文 »

Android View的Measure过程

发表于 2016-08-14

大家都知道Android View绘制过程包含Measure、Layout、Draw三个主要的过程,这个过程看似简单,但是在应用的时候,很多同学还是不能很好的运用。我希望这篇文章可以把其中的一部分——Measure——讲的更加清晰一点。

Measure过程是对View大小的测量过程,相比其他两个过程,Measure的逻辑更加复杂。Measure过程是RootView调用performTraversals()方法时执行的。我们只关心“看的到”的部分。Measure的过程由View树上的View在onMeasure方法中调用子View的measure方法完成的。有点绕,不过,对于自定义View或者自定义ViewGroup来说,我们需要关心下面的内容:

  • 自定义View:覆写onMeasure方法,计算合适的大小,并将结果通过setMeasuredDimension()方法保存结果。
  • 自定义ViewGroup:除了完成上面所说的工作外,还需要调用子View的measure方法,确保每个子View都正确的测量。

自定义View

阅读全文 »

TinyPNG4Mac更新啦

发表于 2016-08-06

TinyPNG4Mac已经更新啦~~ 最新版本为0.9.3版本,请到这里下载。

新版界面:

目前已经支持的特性:

阅读全文 »

从WordPress到Hexo

发表于 2016-08-06

终于,在2个多月后,抽出时间将WordPress的入口完全迁移到Hexo静态blog。也就是说,之前访问WordPress的链接都将会跳转到这个静态博客,所以如果你看到这个页面的时候,不要受到惊吓。

Url兼容

在做这个操作之前,还是有很大的顾虑,担心把博客搞坏……因为访问量比较高的几个页面应该都是从搜索引擎进来的,所以至少要对这些页面做一下兼容,跳转到对应的新的页面。

阅读全文 »

一次极其糟糕的叫车经历

发表于 2016-07-26

记录一下我今天早上遭遇的极其糟糕的叫车经历。

依照往常的习惯,早上出门前打uber,很快,打到一个司机,接电话,问我在哪儿,问我去哪儿,然后说他现在要去西四环(我要去东边),遂让他取消了。

继续用uber叫车,一直停留在叫车界面,等了一分钟,我判断是网络问题(在用wifi),遂切换到4G,这时接到一个电话,一切很正常,以为很顺利,出门。

路上发现uber界面上并没有显示我有订单,在初始状态。进入我的订单查看,已经存在三个取消订单,但事实上这时我没有手动取消任何一笔(第一笔是司机取消的)。

阅读全文 »

第一款Mac应用,第一个Swift程序 TinyPNG4Mac

发表于 2016-07-01

TinyPNG4Mac 已经更新啦,欢迎访问:TinyPNG4Mac更新啦

TinyPNG是一个专注png图片压缩的网站,平均压缩比例能达到70%,同时对于图片质量的损失几乎为0。对于Web应用,能减少加载时间,对于移动App,能大大降低应用体积和内存消耗。非常推荐使用。

TinyPNG4Mac,这第一款Mac应用,也就是TinyPNG服务的Mac客户端。它可以方便的让你不需要打开浏览器就可以批量压缩png图片,只需要拖拽图片到界面上。现已开源到Github:TinyPNG4Mac 下载链接:TinyPNG4Mac

它长这个样子:

preview

界面跟简单,左边是操作区域,右边是任务列表。

使用方法

阅读全文 »

iOS navigationBar监听返回 & 调整left/rightItem边距

发表于 2016-06-13

监听navigationBar返回事件

很多时候我们需要监听navigationBar返回按钮的事件,但是iOS并没有提供相关回调。所以通常的做法是自定义返回按钮,比如各种箭头,但是如果我们需要原生的样式怎么办呢?那就做个比较像的按钮……

有没有更好的解决方法?答案是有的,不过不是我发现的,参见这个项目:Github,巧妙地覆写了UIViewController实现的UINavigationBarDelegate协议的一个方法:- navigationBar:shouldPopItem:,随意不要怕被审核拦下,因为并不是隐藏API。

使用方法:

阅读全文 »
1…678…15
kyleduo

kyleduo

Always follow my heart.

142 日志
30 分类
101 标签
Github Weibo
友情链接
  • CarlWe
  • Jeremy's World
© 2026 kyleduo
由 Hexo 强力驱动
主题 - NexT.Mist
京ICP备15044234号-1