- 博客(16)
- 问答 (1)
- 收藏
- 关注
原创 WebView详解
public voidsetWebView(String url){WebView webView = view.getWebView();mProgressBar= view.getProgressBar();//设置webview属性WebSettings settings = webView.getSettings();settings.setJavaScri
2016-10-25 20:35:57 1991
转载 5.0新布局CoordinatorLayout的酷炫动画
现在的一些app我们偶然会发现随着滑动toolbar出现消失或者扩大到一定程度的酷炫效果,比如知乎的toolbar,其实这是运用了5.0的新布局CoordinatorLayout,从单词来泛型就是“协调”,用来处理多个控件的依赖关系,一般都是两个我们先看一组动画CoordinatorLayout帮我们协调子View,它根据我们的定制,帮助我们协调各个子View的布局。我们先看一组动画图~
2016-10-25 20:35:09 1083
原创 自定义Recycerview支持多种类型,下拉刷新,上拉加载更多的适配器
先上代码,作者的返回类型方法直接使用了数据的角标,然后在createviewholder里面根据类型参数来判断具体的返回情况,这种写法我真的无力吐槽,非常醉了,直接把viewtype当成了position,而且类型增多肯定会增加判断,性能优化的负担,这表示类型数量会比请求数据还会多(因为包含轮播图请求尾),然后你还要考虑除正常数据的其他类型在哪?很坑爹,直接把我搞懵逼了,所以果断弃之,直接自己重写
2016-10-25 20:34:40 1286
转载 java8新特性
下面看看其中的一个实习类吧主页面的实现看起来非常简单吧,直接执行方法就可以了,因为呐presenter是接盘侠,这个锅背的好惨由于泛型限制,定义完接口再写这个实现类一些功能无法调用,其实可以先写一部分或者直接从presenter着手,最后再写实现viewpublic classDailyFragment extendsMVPBaseFragmentimplements
2016-10-25 20:34:06 907
原创 Retrofit网络框架搭建
本项目运用了很多新鲜前沿的技术,mvp+rxjava+retrofit+5.0系统新特性布局,recycerview,项目结构不算复杂,对于学习新技术的朋友有很好的教学意义,下面开始撸代码,分析一下该项目的核心知识点部分先看框架大体上工具类,自定义控件,适配器,bean实体类与mvc并没有任何不同,由于使用的mvp+rxjava+retrofit,差异的地方在于api获取方式,
2016-10-25 20:24:41 1118
原创 自定义Toolbar
由于在多个活动中都会用到toolbar,重复写代码布局显然会浪费更多的时间和精力,同时为了toolbar的灵活性和扩展性,所以实际开发会采用自定义控件的toolba自定义toolbar的布局<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" app:android="http
2016-10-15 23:09:18 648
原创 自定义轮播图HeadView
说到轮播图我们都不会陌生,常规的思想是通过listview或者recycerview的判断不同类型来去写轮播图布局并且做出判断,这样有一个缺点就是会增加适配器的代码量和复杂程度,根据高内度,低耦合的思想自然会把轮播图分开,于是listview有了addHeadView,recycerview虽然原生没有但是通过修改也可以达到添加头和尾的功能。下面重点说一下轮播图的实现。其实轮播图就是一个布
2016-10-15 23:07:23 578
原创 轮播图控件ImagerSlider的BUG你知道吗?
像淘宝,京东的安卓轮播图大家应该都遇到过,大部分的实现是做一个viewpager,我也推荐这种做法,比较灵活,方便修改。对于轮播github上有这么一个专门针对轮播的项目AndroidImageSlider,很不幸第一次用发现了BUG,浪费了数小时都没能解决,@Override public View initView() { View inflate = View.inflate(g
2016-10-09 22:12:37 2067 2
原创 支付流程简单逻辑分析
分类型listview对于分类型的listviewjson数据非常复杂,对于庞大的数据自然不会手动解析,肯定是用GsonFormat,fastgson这样的类来解析,同时再通过HiJson来分类查看类型做适当修改,需要注意是对于越界或者浮点数来代替,所以long对于整型,double对于小数可以规避这个错误,要知道解析不了的错误是不会报错的,直接卡死在解析方法里,根本就察觉不到,非
2016-10-08 23:05:38 4339
原创 Android 支付宝微信支付快速接入流程
搜索活动源码地址https://github.com/helloworld107/ShangGuiGu321Meida.git与大部分app类型,点击顶部的搜索框后直接跳转到搜索活动再做处理,这里搜索的内容直接通过相关api就可以返回相应视频播放的列表参数,本质上和读取本地视频区别不大,不过这里又嵌入了讯飞语言识别,说实话讯飞识别好大,竟然有8mb多,坑
2016-10-08 23:02:52 1618
原创 音乐播放器自定义控件歌词解析
源码地址https://github.com/helloworld107/ShangGuiGu321Meida.git自定义控件音乐歌词源码分析当前主流的歌词文件为lrc,和txt,先来看一下文件内容[00:03.51]荣耀 [00:10.30]作词:高晓松[00:12.30]作曲:钱雷[00:12.37]演唱:王晓天[00:20.03][00:21.82]你听
2016-10-08 23:00:18 1374
原创 常见算法
源码地址https://github.com/helloworld107/ShangGuiGu321Meida.git音乐播放器之活动写完服务终于可以在活动中调用了,看看源码吧这里aidl就可在连接成功里拿到他了,拿取也比较古怪,又用到了stub.asinterfacepublic classAudioPlayerActivityextendsAppComp
2016-10-08 22:52:58 3444
原创 音乐播放器Service和Activity交互实践
1.音乐播放器之service,布局分析音乐播放器使用的是系统原生MediaPlayer,使用流程跟视频播放的videoview几乎一致,虽然没有图像,但是逻辑上说实话甚至更复杂,一来音乐播放作为后台可以的听的自然要写到服务里,这样就涉及到了活动和服务的通信问题,多了一个传输通道显然要麻烦很多。其次歌词的解析很,音律的解析都是自定义控件和算法,也比较复杂。当然看完代码及详细的笔记,
2016-10-08 22:49:57 2653
转载 Retrofit
Gson解析错误,可从来不会弹提示,一般容易错误的两个情况,1实体类名字跟请求网址参数不一致2整数类型用int当超过范围或者用 小数直接崩溃,解决办法就是整形换成long,有小数直接换成double或者float比较保险。1网络视频列表界面跟本地视频列表界面一样,唯一的不同就是从网上用xuils3获取数据,并且引用了xlistview扩展了下拉刷新和加载更多功能,glide加载图片
2016-10-04 23:16:49 891
原创 Glide详细解析
首先是影音界面,其实就是一个简单的列表,本地视频全部通过内容提供者来获取,有则显示,没有则显示没有数据或者加载,参考代码public classVideoPager extendsBasePager implementsAdapterView.OnItemClickListener {@InjectView(R.id.videopager_list)Li
2016-10-02 00:22:26 3336 1
转载 RxJava详细解析
启动页面的标准写法public classSplashActivityextendsAppCompatActivity {privateHandler mHandler=newHandler();privateButton mSplash_button;private booleanisMainActivity=false;@Over
2016-10-02 00:21:21 1385 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人