在上一篇文章 ViewModel + LiveData 初探 中的场景中,有获取手机媒体数据的操作,界面上也要展示横竖屏,展示规则很简单:宽度不小于高度则定义为横屏,否则未竖屏。在我的小米 MIX2 上,不论手机如何拍照,返回的分辨率都是 4000:3000(根据相机设置中的画幅比例),不论你是横着拍还是竖着拍。所以当拿到 4000:3000 后就全部定义成横屏了,与实际不符。所以着手解决了一下,顺便整理下获取手机媒体数据的相关代码,方便日后使用。整体代码如下:
more >>那是一座悲欢离合聚集的楼。
在上一篇文章 ViewModel + LiveData 初探 中的场景中,有获取手机媒体数据的操作,界面上也要展示横竖屏,展示规则很简单:宽度不小于高度则定义为横屏,否则未竖屏。在我的小米 MIX2 上,不论手机如何拍照,返回的分辨率都是 4000:3000(根据相机设置中的画幅比例),不论你是横着拍还是竖着拍。所以当拿到 4000:3000 后就全部定义成横屏了,与实际不符。所以着手解决了一下,顺便整理下获取手机媒体数据的相关代码,方便日后使用。整体代码如下:
more >>Google 已经推出 Lifecycle、ViewModel、LiveData 等一系列架构组件已经很久了,但是自己一直没尝试使用,仅仅就是了解一点点,没有紧跟技术潮流持续学习,说来十分羞愧了。最近接到一个需求,界面如下:
嗯,还是之前的路线详情的页面,新增了需求,导致界面结构又发生变化了。
添加了一个途经点的列表,与打点列表并列,可以和横向滑动切换 Tab。
之前写过一篇文章CoordinatorLayout + RecyclerView 处理滑动说的也是这个页面,这里再贴一下当前的 xml 布局:
今天碰到一个问题,社区里帖子有的可以分享到微信,有的不行,单独调试获取分享的数据,发现并无不同。生成分享数据的代码如下:
1 | WXMediaMessage mediaMessage = new WXMediaMessage(programObject); |
shareData 是客户端单独组织的一个 Model。起初怀疑是 thumbData 太大导致的,结果后面可以分享的帖子生成的 thumbData 所占的字节还要大一些。。。
然后试着分享到微博、QQ 等其他平台,发现也可以分享成功,唯独微信分享给朋友或朋友圈不行。偶然的发现一个帖子分享到微博也会失败,而微博客户端给出了“内容不符合规范”类似大意的提示,于是猜测可能是 description 导致。于是分别调试了不同帖子的数据,发现不能分享的帖子生成的 description length 都是 2000+,而可以分享的帖子生成的才 1000+,没有超过 2000,于是预测是 description 超长导致的。最后调试进行截取,超长的则取前 100 个字符,发现问题解决。
问题比较简单,但是调试的时候很坑,因为分享失败的帖子竟然连 WxEntryActivity 里的 onResp 都不回调,所以压根无法知道失败的原因,只能对比数据靠猜测,于是便记录一下,以后碰到这类问题便知道如何解决了。
总结一下:微信分享传的 description 参数不能过长(测试 1800 以下是可以分享的),否则会分享失败,而且回调里的 onResp 都不会调用。
老规矩,上需求:
这个 Gif 里有众多的动画效果,怎么实现呢?
整体的动画效果大致可以分为 3 个:
拆分完之后,依次来实现。
more >>ViewPager 用来做多 Tab 处理已经是十分常见的了,ViewPager 需要一个 Fragment List 来生成 Adapter,这些 Fragment 有时是完全一样的,界面元素、展示风格都一致,只是数据源不一致。通过抽象的思想,很容易写出基类,类似这样:
1 | abstract class BaseListFragment : BaseFragment<MyData>() { |
tag:
缺失模块。
1、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
2、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: true raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true