好啦,说干咱就干~
项目地址:xingrz/cnode-android
下载
截图
使用环境要求
Android 4.1 (Jelly Bean) 以上
开发环境要求
- Android Studio (canary channel)
- Android SDK
- 5.0 (API 21) SDK Platform
- SDK Tools
- SDK Build-tools 21.1
总之都是最新的。
v1.4.0 主要变更
- 透明的 Action Bar
- LOGO 细节微调
IOS 用户围观
我表示这些技术全部不认识。。。看来要补补了
速度的! android studio 噢, 坐等你代码
支持一个。
速度好快,就需要楼主这样的人。“我表示这些技术全部不认识。。。看来要补补了”
厉害…
为什么不用phonegap呢?
赞,
@winky 主要原因,我目前从事的是 Android 开发,对于我来说几行代码就能实现妥妥的 Material Design 以及原生体验,而不需要用 HTML 和 CSS 堆砌。。。
很赞 可以一起干哈 表示没有玩过material design的要努努力了… 楼主是用eclipse还是android studio啊
点赞,大大支持!
赞一个,趁周末先补补上面的技术
@Cj-challenge 用的是 Android Studio (canary channel)
这两年谷歌画了很大力气去打造这个新的开发环境,总体来说用得挺舒服的~
纠结了一上午把内页也写出来了。接下来弄 Markdown 渲染部分。
不过现在还没有推出1.0的正式版丫 楼主现在用的版本还顺手吗?bug多不多丫?
效果比 iOS 的好哈哈,要大步赶上了~
新版的studio基本还行, 感觉比eclipse 流畅。
@xingrz , 帖子页的 发帖人头像放到导航栏的右侧 就好了, 标题可以去掉,下面正文区有标题就ok了 看起来可能比较空一点, 空间利用率也有所提过, :)
@fish :主要是参考了 Material Design 里面讨论类的布局,之后我微调一下。
另外,Markdown 渲染是个大问题。。。OTL
没搞过,搜了一下, 貌似这个可以,https://github.com/Uncodin/bypass
就不知道语法是不是全了
@alsotang 应该你来协调一下 让ios和Android的ui尽量一致
@fish Bypass 我也看过了,一是只支持标准语法,不支持 GFM;二是貌似比较老了,是 apklib 格式的,Gradle 不支持引入。
囧rz的apklib~, 又找了个方案: https://github.com/sirthias/pegdown 他支持 gfm -> html , 然后 android中 textview.setText(Html.fromHtml(html)) , 这篇文章还提到了图片显示的问题 http://www.cnblogs.com/playing/archive/2011/03/17/1987033.html 这样看来,基本应该可以解决了,@xingrz 试试
@fish 这个之前有看过,我继续研究下。
setText 显示 HTML 其实也只是转换成 Spanned 类来显示,毕竟不是真的 HTML。。。于是乎,ul li 什么的就悲剧了。。。
@fish 噗。。。PegDown 依赖的 parboiled-java 和 parboiled-core 里竟然有同名的类,于是编译报错了。。。神烦
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lorg/parboiled/Action;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:302)
at com.android.dx.command.dexer.Main.run(Main.java:245)
at com.android.dx.command.dexer.Main.main(Main.java:214)
at com.android.dx.command.Main.main(Main.java:106)
。。。, 看来还是得 Hybird
对照着 Material Design 文档尝试了更大胆的布局。。。
@xingrz 头像放左或右都行
@hylin @xingrz @callmewhy 这。。需要吗?
@alsotang 本身 iOS 和 Android 的设计风格不一样,一致倒不用吧,不过大体上已经是一致的啦哈哈,UI都好说,现在还是在头疼 MarkDown 的渲染=。=不知道Android 是不是也有这个问题。。
@callmewhy Markdown 的处理的确是个大问题。。。一个是转换,一个是呈现。
转换的话我给 nodeclub 提了 issue 了争取在 API 里增加转换好 HTML 的内容吧。
呈现的话,Android 的 TextView 提供了有限度的 HTML 支持(实际上是将 HTML 解析成它自己的富文本结构 Spanned
)但是对 CSS 和 ul
li
这些非文字的元素估计够坑爹。。。
@callmewhy @xingrz markdown 我这边可以渲染,但是 css 还是需要在你们的应用中,根据自己的布局来定义。
https://cnodejs.org/api api 有更新
@alsotang 知晓。还在做一些小细节,所以新 API 的功能稍微延后一下。
@xingrz 嗯嗯,还有哪些功能想要的尽管跟我提
这层楼是用来测试样式的。 这是换行。
这是第二段了。粗体,斜体,粗斜体。我是链接。
下面是分割线
上面是分割线
一级标题
二级标题
三级标题
标题到四级就够了
这里有一段缓冲
- 第一项
- 第二项
- 二一
- 二二
- 第三项
- 第一点
- 第二点
- 里面的无符号一
- 无符号二
- 第三点
- 第四点
这是最后一段
@xingrz @callmewhy 你这边应该也用得到
@alsotang 于是我就这么硬着头皮把项目列表给实现出来了。。。OTL
@xingrz 调 css 调出来的效果?说不定那个 css 文件还可以分享给 ios 那边使用
@alsotang CSS。。。想多了。。。Android 上面的 TextView 哪支持 CSS。。。
TextView 吃的是 CharSequence 类型,在上面可以包含一些控制符,实现很基本很基本的样式(比如字体字号颜色什么的)
用 WebView 嘛,资源占用大,而且大小什么的不好控制(打个 HTML 的比方就相当于每一层楼都是一个 iframe)
于是只好自己解析 HTML 标签后用字符堆出来了。。。
求更好的实现方式。。。。
呀不对为什么我会在 Node 社区讨论这么深入的 Android 话题。。。 为什么身为艺术生的我要写算法 以上是样式测试。
@xingrz 我觉得每一层楼都是一个 webview 也还过得去吧。。
@xingrz 可以把应用托管到FIR.im上,这样你更新什么大家都能看到,更加方便大家下载
@alsotang 在 ListView 里如果每个 item 都包含一个 WebView 的话,对 item view 的回收复用、WebView 的高度计算都是很麻烦的事情呀。。。
@yunheli 谢谢提醒,我等下看看。
暂时来说现在最官方的发布渠道是 GitHub Release。。。_(:зゝ∠)_
有没有支持Android 的版本范围, 比如最小支持Android 到几(2.2 2.3)
@libinqq 4.1
本来想参考下代码,如果只支持4.1,还是算了吧,公司要支持2.3 ,被整的各种奇葩路过。
这么快
@libinqq 应该问题不大,你试试把项目里的 minSdkVersion
改到 7
编译看看。
ActionBar 和一些 Material Design 控件我都是用 Support Library v7 的,所以理论上可以支持到 2.1。而且我也没用到什么版本特定的特性。
只是我觉得没必要罢了。
@libinqq 我刚刚编译了一下看了 Lint,其实兼容到 2.1 的问题也不大。
HtmlTagHandler
里面用了 LinkedList
的 removeFirstOccurrence
方法是 2.3 才有的,自己用遍历实现一个就是。
topic_item.xml
里面用到了 android:background="?android:attr/selectableItemBackground"
来显示触摸反馈,是 3.0 才有的。其实这些版本兼容问题,Android 还是非常好做「优雅降级」的:
- 自己用 selector 写个触摸变色的 drawable 放到
res/drawable
- 将现在这个
topic_item.xml
放到res/layout-v11
里,表示 3.0 及以上才调用它 - 复制一个调用自己写的 drawable 的
topic_item.xml
丢到res/layout
里,表示 3.0 以下用它
Android 做优雅降级是很简单的。只是我这里没必要而已。
好的谢谢
听说过 fir.im 吗?可以将应用放上去吗? github 这里,不翻墙的那些用户下不了。amazon s3 的地址被封了。
@xingrz 可以把截图啥的也传上去
竟然还有 travis-ci。。
@alsotang 先配着,以后有用。。。自动打包什么的 _(:зゝ∠)_
@xingrz 看到我的头像出镜了。。话说Material Design的核心不是Card么,这个设计完全看不到Card的影子。。
@nihgwu Card 只是 Material Design 包含的其中一种展示形式而已,但没有说所有信息都必须用 Card 框起来的。
自己解析 HTML 标签会不会遇到难搞的,比如:图片。。。=。=iOS解析HTML太慢了,评论准备也手动解析了
@callmewhy Android 的 Html.fromHtml() 倒是自带图片解析的。。。只是要自己实现网络请求和解码部分而已。。。
怎么请求不到数据啊???
@callmewhy @xingrz markdown 对于移动端来说竟然这么麻烦?我以为 html 用来做展示是很通用的
@alsotang 其实还好。。。没有开箱即用但又不至于超出能力范围。。。
@xingrz 关键还是你能力比较强。。
睡前一图。
@alsotang 我这边解析速度有点慢,不过应该是因为用了UIWebView。。。同事有比较好的替换方案,待我回去研究研究
@xingrz 头部在下滑的时候会隐藏的吧?这图看起来蛮高
@alsotang 所以又被我改成了这样
@winky 那还不如ionic
把这几天的变更发布1.2.0了。忙大作业和毕业设计,先匿几天。
说好专心做作业,结果忍不住又更新了。。。
RecyclerView 爽歪歪的动画
想问 这图片动画用什么工具做的呢?
$ adb shell screenrecord /sdcard/1.mp4
$ adb pull /sdcard/1.mp4
$ ffmpeg -i 1.mp4 -vf "scale=270x480" png1/%05d.png
$ convert -layers Optimize -delay 4/100 png1/*.png 1.gif