多实践,多思考,多请教
写在前面 本来定好的标题是我的2017,想着写完这篇博客时间也到2018年了,索性把标题改了。就当对过去一年的总结,以及对崭新一年的展望。 关于工作 2017年2月份,我离开了上海地奇。
通过CoordinatorLayout可以实现许多炫酷的效果,大家可以参考我之前一篇博客: 一起玩转CoordinatorLayout 其实CoordinatorLayout就是利用NestedScrolling(嵌套滑动机制)来完成复杂的滑动交互。
SwipeRefreshLayout作为官方的下拉刷新控件,简洁美观的风格使其广泛应用在项目中。美中不足的是SwipeRefreshLayout缺少上拉加载的效果,今天结合RecyclerView实现一个支持下拉刷新与上拉加载的SwipeRefreshLayout。
写在前面 转眼之间,一年的时光已经悄然消逝。想写点什么,却发现早已习惯复制粘贴的我,在这一刻竟有点无从下手。想来想去,还是用几个关键词总结一下我的2016吧。 魔都 今年三月底,我辞掉人生中第一份工作,离开生活了四年半的天津,来到上海。
之前用RecyclerView实现了写过一篇城市导航列表: 动手写一个城市导航列表 关于自定义的导航条,滑动监听,汉字转拼音等零碎知识,大家可以查看我之前那篇博客。 今天主要说的是悬停列表的实现,之前的实现方式是每一个RecyclerView的item的布局里面都包含一个头部布局,然后判断当前item和上一个item的头部布局里的索引字母是否相同,来决定是否展示item的头部布局。
作为Material Design风格的重要组件,CoordinatorLayout协调多种组件的联动,实现各种复杂的效果,在实际项目中扮演着越来越重要的角色。本篇博客将由浅到深,带你一起玩转CoordinatorLayout。
近期又在啃《Android开发艺术探索》这本书,最近看到了第六章节—Android中的Drawable。我写博客的风格不喜欢一味的介绍理论知识,更喜欢从实战的角度去学习,在敲代码的过程中去补充理论知识,根据实际情况做出分析,最后实现想要的效果。
准备做一个Android自定义加载动画的合集,主要通过自定义View实现一些常见的加载动画,也会模仿一些主流APP好看的加载动画。项目源码同步上传到了个人github上,欢迎大家star,fork,提issues,一起交流进步。
本来是想写一篇点赞效果的自定义View实例的,后来好基友因为项目紧急叫我帮他撸一个条形柱状图,大致瞄了一眼原型图以后便开撸了。最后做出来的效果与原型图八九不离十,看一下最后实现的效果图: 一个普通的条形柱状图,统计的是12个月份两种状态的数值,选中的长条背景颜色会加深,并且显示当前两种状态的数值。
最近在系统学习自定义View这一块的知识,前面几篇基本都是理论知识,这篇博客着重从实战来加强对自定义View的理解与运用。实现的两种效果,分别代表自定义View与自定义ViewGroup。
View的事件分发机制,其实就是对MotionEvent事件的分发机制,即当一个MotionEvent产生了以后,系统需要把这个事件传递给一个具体的View,这个传递的过程就是分发过程。
本文转载自:自定义View系列教程01–常用工具介绍 在自定义View的时候,常常会用到一些Android系统提供的工具。这些工具封装了我们经常会用到的方法,比如拖拽View,计算滑动速度,View的滚动,手势处理等等。
写在前面: 之前零零散散写过两篇自定义View的文章,当时只是为了模仿实现某个好看的效果,并没有深入学习过,许多问题还是一知半解。这一系列的博客主要记录自己学习自定义View的过程以及心得。
一. View位置参数与坐标分析 View是Android中所有控件的基类,是一种界面层的控件的一种抽象,代表一个控件,常见的获取位置参数的方法有以下三种: 1.View的getTop(),getLeft(), getRight(),getBottom() View的位置主要由它的四个顶点来决定,分别对应View的四个属性:top,left,right,bottom,其中top是左上角纵坐标 ,left是左上角横坐标,right是右下角横坐标,bottom是右下角纵坐标。
先上一张经典图片镇楼: 测试正常情况Activity生命周期的代码: public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.
本文已授权微信公众号:鸿洋(hongyangAndroid)在微信公众号平台原创首发。 最近一个月实在是太忙了,博客也快一个月没更新了。。。刚好最近公司项目需要一个城市导航的列表,自己捣鼓两天之后实现的效果图如下: 左侧的列表根据拼音自动排序,支持头部悬停,点击Item会提示选择的城市;右侧是一个快速导航栏,点击字母会提示选择的字母,左侧列表会滑动到对应位置,支持导航栏快速滑动。
1.Retrofit简介 Retrofit无疑是当下最流行的Android网络请求框架了,是Square提供的开源产品。官方网站是这样介绍Retrofit的—-A type-safe HTTP client for Android and Java,为Android平台的应用提供一个类型安全的HTTP客户端。
本文已授权微信公众号:鸿洋(hongyangAndroid)在微信公众号平台原创首发。 偶尔看到知乎首页的侧滑删除,感觉还不错。之前用RecyclerView的ItemTouchHelper类来实现了Item的拖动和删除功能,今天带来的则是纯手工打造的一个侧滑删除。
*本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 上一篇自定义View中,贝塞尔曲线出现的频率很高,有小伙伴就问到关于贝塞尔曲线控制点坐标怎么计算的问题。
本文已授权微信公众号:鸿洋(hongyangAndroid)在微信公众号平台原创首发。 最近一直在学习自定义View相关的知识,今天给大家带来的是QQ健康界面的实现。先看效果图: 可以设置数字颜色,字体颜色,运动步数,运动排名,运动平均步数,虚线下方的蓝色指示条的长度会随着平均步数改变而进行变化。
自定义View一直是自己的短板,趁着公司项目不紧张的时候,多加强这方面的练习。这一系列文章主要记录自己在自定义View的学习过程中的心得与体会。 刷微博的时候,发现微博运动界面,运动积分的显示有一个很好看的动画效果。
*本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 之前用TabLayout+RecyclerView实现了CSDN客户端首页搭建与Tabs的排序。今天准备用RecyclerView来实现网易新闻Tabs的动态效果。
上一篇博客用TabLayout实现了类似CSDN客户端首页选项卡的滑动效果: 仿CSDN客户端首页(一)—-TabLayout实现选项卡滑动效果 然后发现了CSDN首页拖拽排序效果,先上自己完成的效果图: 这里是在之前的基础上进行修改的:点击右侧的箭头,出现Tabs的列表,按住Item右侧图标,可以进行上下拖动,进行排序,排序以后再次点击箭头,首页Tabs顺序也会改变;点击列表的某一个Item,会跳转到对应的界面。
实际开发中,ViewPager经常结合Fragment来使用,然后再使用三方开源的PagerSlidingTabStrip去实现类似选项卡滑动效果。我之前那个APP的首页就是这样搭建的。
本文已授权微信公众号:鸿洋(hongyangAndroid)在微信公众号平台原创首发。 这篇博客主要是从BaseActivity与BaseFragment的封装开始,总结自己在实战开发中关于Fragment的注意事项以及心得体会。
先上效果图: 左侧一个普通的Listview,没什么好说的。至于右侧,当时看到原型图第一反应是Listview+Gridview来实现(之前没使用过RecyclerView),和主管讨论后建议我使用RecyclerLiew来实现,更加灵活,定制性更高。
abstract修饰符可以修饰类和方法。 (1)abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型(见后面实例),也就是编译时类型。
公司项目有添加商品到购物车的需求,需要一个添加商品的动画效果。参照了一些当下主流APP的效果,最后实现了以下效果: 点击Item,显示点击第几项;点击购买,添加商品到购物车,同时购物车商品总数加一。
最近公司项目重构,主管要求使用耳熟能详的MVP模式,优点是代码复用性高,易于调试维护。觉得很有必要记录一下自己的学习心得。 先看效果图: 很简单的布局与逻辑,点击按钮以后,模拟网络加载数据,两秒过后,将加载的数据显示。
之前用的是接口回调与广播通信来实现fragment与activity之间的相互通信。 http://blog.csdn.net/tyk0910/article/details/50405663 最近公司项目用的是EventBus,开始研究EventBus的实战应用。
写在前面:这个项目是自己当时为了准备面试而做的,由于时间匆忙,水平有限,项目多多少少存在一些问题。代码的整洁性与复用性,以及整体架构的搭建都不尽人意,大家看看里面的一些效果就好。
转载请注明出处:http://blog.csdn.net/dmk877/article/details/50311791 相信大家都知道设计模式,听的最多的也应该是单例设计模式,这种模式也是在开发中用的最多的设计模式,可能有很多人会写几种设计模式,那么你是否知道什么是设计模式?为什么会有单例设计模式即它的作用是什么?单例模式有哪些写法?对于这样的问题,可能有部分童鞋并不能很好的回答,没关系今天就和大家一起来详细的学习下单例设计模式,相信通过学习本篇你将对单例设计模式有个详细的理解。
1.命名规范: 从正式开始Android开发工作第一天,主管就教我命名规范,这也从侧面反应命名规范的重要性。良好的命名习惯对今后代码的维护更新起很大作用,提高开发效率。 (1)布局文件中的id命名 规则:使用驼峰命名,前缀+逻辑名称,类变量名和布局文件id名称保持一致,不...
SwipeRefreshLayout–Google官方提出的下拉刷新控件,广泛应用在各种APP中。一直想弄一个既能支持下拉刷新,又能够上拉加载,同时还能实现类似于QQ的滑动删除效果。
最近公司项目需要,需要做日期以及时间的选择器,查看Android自带的日期时间选择器,感觉不是很好看,然后上网找了一些相关的资料,自己封装成了工具类,使用起来很方便。先看效果图: 首先是日期选择器,默认显示当前日期,点击以后,出现日期选择对话框,上下滑动选择日期 然后是时间选择器,默认显示当前时间,点击以后,出现时间选择对话框,上下滑动选择时间 最后注意的是,自定义的时钟组件首先显示的是当前的时间,当点击时间选择器,设置好时间以后,时钟组件会显示重新设置的时间。
最近公司项目运用到了关于图表这一块的知识,用到了Android AchartEngine,这是为Android应用而设计的绘图工具库,能够支持多种图表类型。 这里有比较详细的关于AchartEngine的介绍与使用http://blog.csdn.net/lk_blog/article/details/7645509 这里主要谈的是自己对AchartEngine的一些理解与使用心得。
今天在做项目的时候,用到了平时再也熟悉不过的Fragment,其中涉及到了Activity与Fragment之间的通信,这里总结一下在自己项目中的应用。 参考博客: http://blog.
最近在下载网络图片的时候,用到了AsyncTask,对于执行耗时任务,然后更新UI是一把利器。觉得有必要进行一些深入的了解 AsyncTask的基本用法 首先来看一下AsyncTask的基本用法,由于AsyncTask是一个抽象类,所以如果我们想使用它,就必须要创建一个子类去继承它。
一个简单的Listview,然后里面item就是一张图片,希望很流畅的加载网络图片,然后滑动的时候不会出现卡顿,也不会出现OOM现象。在断开网络连接的时候,点击listview的item,进入到图片详情界面,依旧能够加载出完整的图片。
最近公司项目,其中有一个用户头像上传的模块,包括调用手机相机拍照上传,以及调用手机图库上传两种方式。在网上收集整理了许多资料,最后才达到了自己的预期,先看效果图。 首先点击详细界面里面头像栏,然后弹出一个activity,这里设置了一下android:theme=”@android:style/Theme.Dialog” : Activity显示为对话框模式,加上一个动画效果,就达到了图示的效果。