RecyclerView  挺好用RecyclerView没有像之前ListView提供divider属性,而是提供了方法recyclerView.addItemDecoration()其中ItemDecoration需要我们自己去定制重写,一开始可能有人会觉得麻烦不好用,最后你会发现这种可插拔设...
自定义绘制概述二话不说,我反手就是一个视频: 首先总结一下视频中的关键点:自定义绘制的方式是重写绘制方法,其中最常用的是 onDraw()绘制的关键是 Canvas 的使用 Canvas 的绘制类方法: drawXXX() (关键参数:Paint)Canvas 的辅助类方法:范围裁切和几何变换可以使...
软件开发是一个有风险但是风险不高的活。因为一般软件开发都是一个工程,有很多人参与。比如一个基础程序员,在写代码之前会开一些讨论会。比如讨论系统架构,技术选型。产品经理会讲解这个阶段产品的特性和具体的功能。协调开发,包括前端和后台来做规划。比如我们要实现一个天气查询的app。首先产品经理做策划,需要有...
作为程序员,我们不得不面对很多bug,不论是界面上的还是功能上的,特别是如果程序的语句本身就是各种可能的语法错误,我们应用的稳定性就可能成为很大的问题。通过一些奔溃监控管理程序我们可以在用户使用过程做发现bug然后去解决bug。但是这种就好像是事后诸葛一样,我们不能全部凭借程序员个人的努力和测试人员...
暗黑战神源码如何开启密码验证呢?我们如果运行起来了程序,可以发现我们的客户端并没有密码验证功能,需要我们动手去修改。其实修改很简单通过修改prefab来修改界面,然后调整密码输入框的位置和显示,来实现密码的输入。同时开启服务器端的密码输入验证。客户端通过socket和服务器连接,但是服务器的一个结构...
一个视频播放app很重要的部分是如何能够播放视频,如果我们的app不能直接播放视频那也就没有了意义了。那么今天我们就来分享一下如何使用swift来实现视频的播放。我们使用的是一个Controller是AVPlayerViewController,通过在storyboard中拖动一个这样的AVPlay...
# 测试 ### 行为驱动开发 **BDD**, 行为驱动开发,是通过与产品经理沟通需求,定义出满足这些需求的软件需具备的行为(Behaviour),再以这些行为为驱动(Driven),编写产品代码来实现这些行为。2009年开始出现### 行为驱动开发分类1. #### nightwatch UI ...
做项目就是这样,如果技术选型出现了问题将会对后期产生非常大的影响。这个项目中我先后使用了wmqtt、mqtt-client、paho版mqtt。都是通过基于wmqtt的服务程序来管理,可以实现后台自动重启和接收消息。之前受误导使用了mqtt-client导致整个项目的消息接收不稳定,消息内容解析出现...