自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Smile浅唱

记录我的点点滴滴

  • 博客(32)
  • 资源 (3)
  • 收藏
  • 关注

原创 SmileWeather之DataBinding篇

SmileWeather之DataBinding篇前言本系列文章将以SmileWeather为实例来记录一下如何开发一款简单的APP,麻雀虽小五脏俱全。项目地址SmileWeather之项目简单介绍SmileWeather之Jetpack介绍和集成SmileWeather之网络篇(Retrofit+LiveData)基本介绍DataBinding也是属于Jetpack中的一部分,Google开发文档中是这样介绍的:数据绑定库是一种支持库,借助该库,您可以使用声明性格式(而非程序化地)将布

2020-10-23 09:14:55 200

原创 SmileWeather之网络篇(Retrofit+LiveData)

SmileWeather之网络篇(Retrofit+LiveData)前言本系列文章将以SmileWeather为实例来记录一下如何开发一款简单的APP,麻雀虽小五脏俱全。项目地址SmileWeather之项目简单介绍SmileWeather之Jetpack介绍和集成SmileWeather之网络篇(Retrofit+LiveData)说两句本项目的网络请求模块是采用的Retrofit+LiveData来实现的,第一版是采用的RxJava+Retrofit+LiveData,后面发现RxJ

2020-09-24 16:15:08 638

原创 SmileWeather之Jetpack介绍和集成

SmileWeather之Jetpack介绍和集成说两句前面的项目初步介绍我们已经了解了Jetpack是个什么玩意,接下来我们再往前走一点,Jetpack也不是我一两篇文章就能说透的,我在这里只是简单的记录了一下在SmileWeather项目中如何去使用它的。四大分类Foundation(基础组件)AppCompat:提供了一系列了AppCompat开头的API主要是为了兼容低版本AndroidAndroid KTX: Kotlin的支持库,优化kotlin来使用Jetpack中的API,让我

2020-09-23 16:44:51 277

原创 Android开发过程中遇到的一些问题和解决方法(持续更新)

Android开发过程中遇到的一些问题和解决方法(持续更新)混淆后注解丢失解决方法:在混淆的配置文件中添加 -keep class * extends java.lang.annotation.Annotation { *; }gradle plugn升级到3.0以上错误Error:Cannot choose between the following configurations of project :IMKit:解决方法:implementation project(path: ‘:I

2020-05-26 16:58:00 2106

原创 学习Kotlin实现一个简易天气APP(MVVM+JetPack组件+Databinding)

学习Kotlin实现一个简易天气APP(MVVM+JetPack组件+Databinding)因为最近在学习Kotlin,又想看看Databinding怎么样所以准备通过写一个小项目来试试水,废话不多说,先上效果图效果图主要功能定位(百度地图SDK)添加,删除城市获取天气数据(实时天气和未来一周天气,数据由和风天气提供)项目基本介绍整个项目采用MVVM架构,也是现在比较流行的...

2019-12-25 14:31:52 1517 1

原创 集成LiveData+ViewModel+Retrofit+Room的一个Demo

集成LiveData+ViewModel+Retrofit+Room的一个Demo2018年Google的IO大会提出来了Jetpack,上面的一些技术点都是这个里面的,正好公司新开了一个项目,所以抱着尝尝鲜的态度来感受一下(内容有点多,基本上都是代码)。主要技术点LiveDataViewModelRetrofit+RxJavaRoom注:本Demo是采用的androidx(大趋势...

2019-04-19 11:29:27 3372

原创 SpringBoot+Nginx实现多张图片和参数上传

SpringBoot+Nginx实现多张图片和参数上传业务需求,通过上传多张图片给服务器,并且返回访问地址。废话不多说开搞。第一步首先我们要安装Nginx,修改Nginx的config文件(Nginx安装配置过程不是本篇文章的重点)添加如下内容:location /imgs { root /Users/yaojiulong/file; autoi...

2019-02-19 10:53:56 2595

原创 蛇皮Banner无限滚动风格初步实现

蛇皮Banner无限滚动风格初步实现前言好吧,最近收到了一波蛇皮风格的banner效果,先看图 ,大概就是中间banner会露出来两边,然后支持无限轮播。 撸码首先看到这个效果肯定会想到采用viewpager来实现,但是viewpager一个item的宽度基本上都是占了一个屏幕。所以这里就涉及到了一个属性 clipChildren,这个属性的作用就是控制他的子控件是否要在他应...

2018-06-07 15:32:05 310

原创 Android开发过程中可以注意的一点点小细节

Android开发的一点点小细节前言千里之堤毁于蚁穴,一个APP崩溃何尝也不是这样呢,其实很多时候都是因为平时没有注意一些小细节。现在就来分享下一些我平时开发过程中注意的一些事,当然我最开始也是没有注意的,从而导致出现了一系列的大问题。使用switch case 不要忘记最后加break来退出。ListView的item不能为fragment,因为fragment是由fragmentmanage

2017-03-30 16:07:07 365

原创 关于git你需要知道这些

关于Git的那点小事建库现在对于版本管理一般都是使用git了,今天特意来回顾下git一些基本用法。这里我采用github当仓库吧,因为日常也会上传一些项目到github上去。不过以后公司里面开发,是不会把项目放到github上面来的,那个可以使用自己的内部服务器,或者搭建个gitlab都是OK的。 好了,进入正题,先初始化仓库吧,这里我新建了个Android项目,当然这里Android不是关键,其

2017-02-10 09:33:37 373

原创 RXJava+Retrofit+MVP的简单封装

RXJava+Retrofit+MVP的简单封装马上就要过年了,躁动的心早已按耐不住,还是写上一篇文章来冷静下。这次主要是搭建一个app框架(网络请求方面),这也是自己慢慢摸索去搭建的。首先这个框架主要用的东西:看标题就知道了。 OK,废话不多说,RxJava用的1.0,(这个可以升的,只是有些方法名改了),Retrofit用的2.0 首先引用这些玩意吧: compile 'io.reac

2017-01-17 14:24:56 603

原创 RecyclerView上拉刷新,下拉加载更多

RecyclerView上拉刷新,下拉加载更多经常在写项目的时候都会碰到RecyclerView上拉刷新,下拉加载更多的功能,今天自己来捋一捋。效果图下拉刷新(SwipeRefreshLayout)这是Google自己出的下拉刷新控件,其实还挺好看的,这里我们只要知道其中几个方法就可以了。 1. setColorSchemeResources 2. setOnRefreshListener 第

2016-12-28 13:52:43 490

原创 Android自定义view之天气折线图

Android自定义view之天气折线图最近公司一个项目需求,需要添加一个折线图,能够显示七天的天气信息。当然这个需求并不是很难,网上也有很多相关的例子,但是为了巩固下自定义view的基础,所以我决定还是自己写一个玩玩。不啰嗦,先上效果图(demo没有美化,比较简陋) 看了效果图,是不是感觉比较简单,麻雀虽小,但是五脏俱全,这里面囊括自定义view的核心。 先介绍下自定义view里面的几个核心方

2016-12-02 15:52:39 3033 1

原创 极速完成一个新闻类APP(RxJava+Retrofit)

快速完成一个新闻APP本Demo主要使用的技术:看标题就知道了Material Design聚合数据效果直接点吧,先看下效果 Demo架构老司机们一看就知道界面是由ViewPager+Fragment组成,还是比较简单的。新闻详情页面主要是采用了design包下的CoordinatorLayout作为父布局,因为要做出那个下拉折叠效果嘛。然后点击新闻列表时会有一个转场动画,不知道细心的朋友

2016-11-04 17:42:55 5171 2

原创 谈谈对Android定时任务中AlarmManager的理解

Android定时任务前言我们在平常的开发中可能会遇到一些需求,比如说,每日定时提醒,定时更新数据等等,反正就是周期性任务,碰到这类需求,我们就可以叫做定时任务。以前我们可以通过使用线程Handler来实现,现在既然是在android手机里面,那就更加好办了,android给我们提供了一个AlarmManager这个玩意。它是一种系统级别的定时提示服务,并且可以运行在app的生命周期之外,还是比较强

2016-09-07 15:27:43 5828

原创 关于android打开闪光灯的一些小事

前言我们用的android手机现在基本上都支持闪光灯了,实现一个闪光灯的功能不是很难,就是其中会碰到一些奇葩的问题。我就碰到了一些问题,因为国产ROM的一些??,导致我们的闪光灯总是不能正常的打开。作为一个开发人员,首先要保证我们开发出来的产品是稳定的,不能说崩溃就崩溃了。 现在市面上的一些机型,当你打开闪光灯的时候再去打开相机,它会给予“”“相机被第三方占用,请先关闭第三方”之类的提示。

2016-08-29 23:10:26 6776

原创 关于Animation的那点小事,天气特效篇

关于Animation的那点小事,天气特效篇这次接到一个需求,要做天气预报里面的一些特效,像晴天,多云,下雨,下雪等。因为现在APP都在追求高B格了,不弄点特效怎么博人眼球啊!好了,不啰嗦先敲下效果图,先来个晴天和多云的特效压压惊。 分析习惯性这样,每次拿到需求后,先分析一遍,这也是个很好的习惯,代码不着急写,先理清思绪,如何来实现这个功能。 可能晴天是最好弄的,因为就是一个旋转动画就行,只是转

2016-07-09 12:37:33 2836

原创 Android遍历本地视频文件加过滤

Android遍历本地视频文件加过滤最近在想写一个视频播放器玩玩,既然是播放器,肯定有播放本地视频的功能,那么问题来了,我们怎么获取本地一些视频呢?当然是遍历啦,据目前我所知道的方法有两种,一是用android里面的Cursor的contentResolver.query去获取,但是这个有一个很蛋疼的问题,就是无法识别.rmvb格式的视频(血崩…),既然我是一个追求完美的人,那么这样的情况是允许发生

2016-06-16 22:22:23 7829 8

原创 Android购物车初步实现2(功能篇)

前面开始把ui写好了,接下来准备写功能,同样的也要分析一下,这是撸代码的基本原则。觉得解释比较啰嗦可以直接去看我的源码(这里)分析因为这个demo中有店铺信息和商品信息,所以我需要创建两个实体类。而且它们都有选中和非选中的状态,所以可以在实体类中给它们添加这些属性,最好是用boolean类型的,true为选中,false为未选中(打字好累的。。。)同理,编辑功能实现也可以这样,true显示,fa

2016-05-29 11:11:15 2088 1

原创 Android购物车初步实现1(UI篇)

android购物车初步实现最近接到了一个需求,要做一个购物车的功能,就类似于淘宝那样的购物车,仔细分析了一下,其实并不是很难。好了,不啰嗦,先上效果图,因为都是用的假数据,所以界面看起来比较low,但是没有关系。如果觉得接下来的描述比较啰嗦,那就直接上github地址(这里)主要功能全选 单选编辑结算(总额统计,这里未实现)分析当拿到原型图的时候先不要急着去写代码,先分析一下,这些效果要

2016-05-29 10:25:32 3465

原创 Node.JS查询Mysql数据库输出到页面

最近在学习Node.JS,开发后台难免不会与数据库打交道,这里我采用的是MySQL数据库。今天主要是总结一下如何查询数据库里面的内容,然后以JSON数据格式输出到页面。准备工作首先安装mysql模块:npm install mysql -g.然后在mysql里面建一个测试数据库,一个表,一些测试数据。这些我就不贴代码了。开始首先我在项目新建一个db.js,主要是编写一下数据库连接。/** *

2016-04-27 22:20:48 16709 6

原创 集成Vitamio来播放网络视频(支持多种格式解码)

集成Vitamio来播放网络视频(支持多种格式解码)在android里面可能会用到播放网络视频,但是android SDK自带的播放视频并不能满足我们要求,因为支持的格式有限,有时只有声音没有头像。碰到这种情况就比较尴尬了…… 经过上网查询,找到了一个比较好的框架——Vitamio,Vitamio是ffmpeg的一个开源项目。 先上效果图准备工作下载Vitamio,可以去官网下载,当然我也上传到

2016-04-25 13:16:32 3628

原创 初识Node.js,来了解下路由

初识Node.js,来了解下路由最近在开始学习Node.js,因为以前有学过JavaScript,所有感觉还是那么亲切,不过也产生不少陌生的名词:比如今天就要说的路由。路由干嘛用的几种路由怎么写路由路由是干嘛的刚开始听到路由是不是会联想到路由器啊!反正我是有这个感觉的,好了,不废话,经过查资料大概了解到了路由就是用来拦截请求,将不同的请求,分配给相对应的函数来处理,比如说用户登录啊等。然而我

2016-03-31 14:42:26 635

原创 解决5.0以上新TimePicker不触发setOnTimeChangedListener

解决5.0以上新TimePicker不触发setOnTimeChangedListener最近一个需求要写一个时间选择器来选择时间,android里面是有一个这样的控件但是确实不怎么好看,就下面那样,肯定是拿不出手的啦。 但是在后面又出了个新的时间选择器,一下就变得高大上了 其实这两种都是TimePicker,只是Style不同了。前者我们可以通过实现setOnTimeChangedLi

2016-03-21 16:04:14 2625

原创 android实现音乐波动条形图

android实现音乐波动条形图我们经常听音乐的时候都会有一些柱状图波动,今天我就在android里面来实现这个效果。先看效果图: 分析:首先可以将这个跳动的条形图看做成一个View

2016-03-18 13:37:11 7100

原创 Android的UDP请求与响应

Android的UDP请求与响应(DatagramSocket)我们在android网络里面可能用的最多的TCP协议,但是我们都知道其实除了TCP之外还有一个兄弟就是UDP。UDP是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去! DatagramSocket的间谍使用请求一个服务器并发送数据解析服务器返回的数据需求一个小Demo 向服务器发送一个数据包,然后服务器校验后

2016-03-16 22:50:10 3121

原创 提高android数据库性能,GreenDao初步使用

前言基本上android开发都会用到数据库,数据库的出现就是为了缓存数据,但是一但我们的数据很多很多的时候呢?哪该怎么处理呢,所以最近我在网上了解了下一些有关android数据库的框架,发现有那么几款数据库框架的。我初步对比了一下,发现GrennDao还是非常不错的。优点:强大的API,丰富的功能内存消耗小高性能缺点:前奏比较长(搭建) 但我相信这个应该不会难倒我们这些热爱新技术的小青

2016-01-18 09:54:11 2386

原创 解决ScrollView里面嵌套Listview的问题

解决ScrollView里面嵌套Listview的问题其实写博客就好像在给自己做笔记+复习一样,所以决定要多写一点博客,分享一点小知识。在帮朋友写一个界面的时候,要实现UI妹妹给的效果,只能采用ScrollView嵌套Listview来实现。当我适配器写好后就以为一切都差不多了,结果发现ListView只显示一条数据,当时就懵B了,我不是给10条数据,为毛只有一条?定制为专属ListView手动

2016-01-15 10:22:28 512

原创 ListView加载不同布局

前言以前我们总是用到listview显示数据,但是每个数据都长得差不多,但是实际需求却经常不是这样的,如果我要一个listview显示多种布局,那应该怎么办呢?其实想要实现这样的功能并不难,关键就是在listview的适配器稍作修改,待会我会贴代码。我一般都是继承BaseAdapter这个来重写适配器,因为是父类,便于扩展。我们主要是重写里面的两个方法,getViewTypeCount()和get

2015-12-21 11:25:40 374

原创 Android如何优雅的缓存网络图片

Android如何优雅的缓存网络图片在Android开发中,基本上都会有与网络握手,如果没实现这个功能,那也就只能是在开发一个“单机游戏”咯。既然从网络获取数据,那就避免不了加载网络数据,那么问题来了,流量怎么办?大家都知道,加载网络图片比加载网络文本耗费的流量多得多。不用担心,今天来分享以下如何缓存网络图片到本地来:根据图片的url去加载,本地有就加载本地,没有则请求网络图片压缩,降低内存使用

2015-12-06 10:50:24 1003

原创 Volley框架让你告别繁琐的多线程

有些天没有写东西了,今晚来一发,以前我写Android的网络部分基本上都是用多线程。然而前段时间无意中发现其实谷歌早在2013年就推出过Volley框架。![谷歌官方图片](http://img.blog.csdn.net/20151012224158106) 通过图片我们大概可以了解Volley框架主要是为了解决网络并发,以及对网络请求做了一些优化。其实原理还是在基于多线程,只是谷歌将它好好的封

2015-10-12 22:54:11 648

原创 JDBC中的Dao设计模式

今天也是我第一次写博客,想想还是有些小激动的,但是文中可能有些不足,请指出。Dao设计模式的全称是data access object,DAO模式通过对业务层提供数据抽象层接口。DAO的好处就是提供给用户的接口只有DAO的接口,所以如果用户想添加数据,只需要调用create函数即可,不需要数据库的操作,这样减少了对数据库操作代码,使代码不那么混乱。废话不多说了,直接上代码。//User对象

2015-09-17 10:19:04 651

SmileWeather.apk

一款简易天气APP,为项目SmileWeather里面的(MVVM+JetPack组件+Databinding)

2019-12-25

Android天气折线图

绘制了七天最高温与最低温的天气折线图

2016-12-02

Vitamio for Android

解压,把vitamio作为自己项目的依赖

2016-04-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除