使用9-patch png图像的Tips

最近开始踩 Android 屏幕适配的大坑,发现 9-patch png 用起来还是挺方便的。当然其中也遇到的一些问题,这里小做记录: 不同状态图像间有偏移 在 9-patch 编辑中可以看到拉伸预览。预览看上去正常,实机操作中有时会发现按下去的按钮的图像和默认状态的图像有细小的偏移。 解决方案:对不同状态的同一图像指定完全一致的 stretchable patches(左上) Content Padding 不一致 9-patch 的 content

read more »

Jackson处理嵌套字段

Java 中对于 JSON 数据的对象化, Jackson 方便好用,还有 jsonschema2pojo 等工具帮忙生成 Java 类。 然而,有时对于嵌套的 JSON, 我们只关心其中的一两项, 甚至有时希望将内部字段其合并到外部的对象中。 可惜的是,现在 Jackson 还没有支持 @JsonWrapped 注解: Issues (只有 @JsonUnwrapped 用于生成

read more »

Dagger2 Scope 注解(例)

Dagger2 中 @Scope 的作用其实很简单:用于保证被标记的 Component 一个实例在注入依赖时, 将标记了同样 Scope 注解的对象只注入同一个对象实例。 @Singleton 只是 Dagger2 预定义的注解。也就是说:如果一个 App 持有多个标记了 @Singleton 的 AppComponent, 这些 AppComponent 注入的对象不能保证是单例。 这也就是为什么需要在 Android

read more »

利用SilentNotification实现PushNotification定制

苹果的PushNotification功能本身支持一定程度的定制,从而实现对国语言的支持。 Ref: Localizing the Content of Your Remote Notifications 然而,如果希望对消息进行完全的定制,决定是否显示,内容的修改等等,则需要通过 SilentNotification (即Background RemoteNotification)的后台处理实现。 原理 当Notification中含有content-avalible字段时,可以不包含title等用于显示通知的字段,这样用户就不会看到系统通知(SilentNotification) 含有content-avalible字段的通知会触发didReceiveRemoteNotification回掉,应用程序有一定时间执行后台代码(

read more »