draw text 文字对齐

最近画一个自定义 view,涉及到蛮多 draw text 的地方,算是把恼人的文字对齐大体熟悉了。

Android 在 draw 一段 text 的方法如下

1
public void drawText(String text, float x, float y, Paint paint)

方法有四个参数,除了 y 其他都蛮好理解的。那么 y 为什么难理解呢?因为我们不知道 y 定义的是哪里的位置?文字的顶部?底部?还是中间?其实我们是一头雾水。

Read More

HTTP 协议笔记

回顾市场上面,基本上现在所有 app 都基于网络,电子商务,图片浏览,视频聊天,浏览网页无一不和网络密切相关。而网络请求,绝大部分都是基于 HTTP 协议,所以对 HTTP 的认知显得尤为重要。

Read More

规避 NullPointException 的一些策略

NullPointException 是 Android 开发中最常见,也最容易 fix 的异常之一。每当发生 NullPointException 时,解决方案大多都是根据错误堆栈,获取错误行数,然后加个 if (someObject != null) 的判断。看似简单的 fix,实际开发中,我们也不可能会对每个需要使用的 Object,进行非空判断,这样会导致代码十分冗余,而且,这样做,有些非空判断,可能永远都是返回 true. 除了给代码添加行数外,也没什么实际意义。

所以,问题的关键是,要辨别对象是否可能为空,然后给可能为空的变量进行非空判断。下面总结了几种策略来帮我们处理辨别对象是否为空的情况。

Read More