前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kotlin 实现仿开眼 App

Kotlin 实现仿开眼 App

作者头像
非著名程序员
发布2018-02-09 17:46:29
1.1K0
发布2018-02-09 17:46:29
举报
文章被收录于专栏:非著名程序员非著名程序员

开眼视频是一款精品短视频日报应用,该项目是用kotlin,借助已知的一些开眼接口写的一个仿《开眼App》,主要是为了学习kotlin和一些UI效果。

GitHub 主页 https://github.com/kaikaixue/

Apk 地址:https://github.com/kaikaixue/Eyepetizer/blob/master/apk/app-debug.apk

用到的功能和技术

  • kotlin
  • rxjava
  • retrofit
  • mvp(第一次在项目中用,可能会有些过度使用、或者该用不用的毛病,欢迎指正)
  • GSYVideoPlayer
  • 自定义behavior
  • 自定义下拉刷新

根据已知的接口,主要实现:每日精选、分类、热门几个模块

每日精选

效果如图:

该页主要仿了官方app的几个UI

  • 通过PageTransformer实现了ViewPager切换动画,代码点击查看
  • 自定义一个文字动画(轮播图上的两行文字,逐字出现),代码点击查看(之前用ondraw的方法实现,结果发现当文字中有特殊字符的时候,宽度测量会有很大的偏差,所以用了新的方法:添加一个invisiable的textview用来占位,方法有些c粗暴,哈哈哈哈,有更好思路的同学欢迎提出),旧代码在这里点击查看
  • RecyclerView下拉刷新,放大第一个item且带阻尼效果,代码点击查看
  • Toolbar随当前item变化
  • 底部自动加载
  • ViewPage中有视频播放、图片展示两种类型

由于微信对代码支持不太友好,而且代码较多,这里就不一一贴出来了,想学习和查看 demo 的同学,可以直接点击阅读原文查看。

详情页

写到详情页,kotlin也写了几天了,感觉对于kotlin特性的运用(比如函数参数)比每日精选那块要熟悉一点了,继续努力

效果如图:

  • item第一次加载的时候,文字跳跃出现,之后不会再跳跃
  • 查看更多相关视频
  • 支持查看评论
  • 根据当前网络状态(流量、wifi)决定播放高清、标清视频
  • 非wifi下视频所需流量提醒
  • 支持全屏播放
  • 播放器生命周期控制
TODO:
  • 进入作者页面

分类

有了前面每日精选、详情页的基础,这个模块开发起来快多了,很多都是直接拿来用。

主要就是自定义了一个behavior(谷歌官方有一个toolbarbehavior,但是跟这里的效果还是有差距的,所以只能自定义了)

效果如下:

热门

有了前面的基础,这个模块没什么好说的,一个tablayout搞定。

效果如下:

API接口

接口地址:https://github.com/kaikaixue/Eyepetizer/blob/master/app/src/main/java/com/xk/eyepetizer/api

关于我

个人邮箱:3440395@qq.com

GitHub主页:https://github.com/kaikaixue/

个人博客:http://xuekai.top

声明

Api 数据都是来自开眼视频,数据接口均属于非正常渠道获取,请勿用于商业用途,原作公司拥有所有权利。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 非著名程序员 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 用到的功能和技术
  • 每日精选
  • 详情页
    • TODO:
    • 分类
    • 热门
    • API接口
    • 关于我
    • 声明
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档