自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ruiray的专栏

让生活有趣

  • 博客(50)
  • 资源 (6)
  • 收藏
  • 关注

原创 重新认识 Gradle 打包

Gradle 是什么,Android 打包插件,AAR 文件,AS 如何快速打包...

2017-10-16 10:34:44 257

原创 Eclipse for Android 开发环境搭建及各种坑

Eclipse 下载、配置和其中遇到的异常...

2017-10-16 10:31:19 10999

原创 Kotlin 实践项目(密码本)

开源的项目,专治记不住密码...

2017-09-03 20:55:26 1240

原创 打包和依赖 AAR 文件

AAR 文件的单模块打包和多模块打包,以及引入到项目中的两种方式,以及常见遇到的问题

2017-08-01 14:02:02 823

原创 Gradle 入门之 Groovy 语言详解

Gradle 核心是基于 Groovy 脚本语言,Groovy 脚本基于 Java 且拓展了 Java。因此 Gradle 需要依赖 JDK 和 Groovy 库。Groovy 语法详解(类型、运算符、程序结构、闭包)...

2017-08-01 00:01:14 1901

原创 Android 第三方推送整合文档

集成第三方推送笔记,应用未启动时点击通知栏执行的一连串打开页面操作...

2017-07-31 23:36:43 396

原创 Android 播放器通知栏样式适配

根据系统主题,适配不同手机的通知栏...

2017-07-31 23:32:12 1393

原创 Android 中使用 Kotlin 快速入门

Kotlin 的对象结构、函数,环境搭建,Anko Layout...

2017-07-31 23:25:53 767

原创 Android 应用保活笔记

提高进程优先级降低被杀死,通过系统机制拉活应用...

2017-07-31 23:04:48 235

原创 Android 网络请求框架对比分析

一、网络框架的基本结构在分析其它框架之前,先做一个简易的网络请求框架。这里的结构和 Volley 一致,主要分为 4 部分,如图: 第一部分:各种请求类型,如 JsonRequest、StringRequest 等。 第二部分:消息队列,消息队列维护了提交给网络框架的请求列表,并且根据相应的规则进行排序。 第三部分:Executor,也就是网络的执行者。该 Executor 继承自

2017-02-28 13:57:01 6475

原创 Logger 日志打印库详解

一、基本使用Logger 是一款 Android 平台上的简单、优雅、强大的开源日志库。1,Logger 提供了以下方法:打印线程的信息打印类的信息打印方法的信息优雅的打印JSON数据优雅的打印换行符打印简洁的信息点击日志跳转至源码2,引入依赖库,在 app 根目录的 build.gradle 文件中加入如下代码:compile 'com.orhanobut:logger:1.15'

2017-02-28 12:54:44 5199

原创 Android 数据库对比

一、常见数据库介绍GreenDao 是为Android设计的对象关系映射(ORM)工具。它提供了对象到关系型数据库SQLite的相应接口。为了在Android工程中使用greenDao,需要创建另一个“生成器”工程,它的任务是在你的工程域里生成具体的代码。因此相比与其它ORM框架具有出众性能。 LitePal 是对象关系映射(ORM)模型。它使开发者使用SQLite数据库变得非常容易。 你可

2017-02-28 12:17:27 8163

原创 Android Todo MVP 框架分析和例子

项目的业务逻辑不断变更,需求也不断扩张,导致在原有代码基础上去处理也变得越来越繁琐,这时项目框架和代码规范就显得非常必要了。Google 在 GitHub 上的 Android Architecture Blueprints 提供了很多框架 Demo,现在对其中的 todo‑mvp 做一个简单的分析,并模仿写一个简单的 Demo。 一、MVP 基本结构MVP 从更早的 MVC 框架演变过来,

2017-02-28 12:10:49 477

原创 【Android Library】项目导入到Nexus私服

1,在Android library中的Gradle中加入如下代码: apply plugin: 'maven' apply plugin: 'signing' signing { required { has("release") && gradle.taskGraph.hasTask("uploadArchives") } sign configura

2017-02-01 00:00:20 359

原创 Nexus 私服上传文件,并通过 Gradle 引用

一、上传文件到 Nexus1,进入 Nexus 仓库界面如果你电脑还没有使用 Nexus,需要先下载并启动 Nexus 私服。 在浏览器输入:http://127.0.0.1:8081/nexus/ 进入后看到如下界面就代表nexus已经启动成功。点击右上角的【Log In】登陆,初始用户名密码:admin/admin123 登陆后,点击右边导航栏的【Repositories】会看到

2017-01-31 23:56:44 4940

原创 RecyclerView 使用的简单封装

本 Demo 主要是对网络请求分页加载数据做的一个简易的封装,实现了如下功能: 1,RecyclerView 滑动到底部时加载下一页 2,ItemView 和它内部View的点击事件 3,Item 的选中效果如下: 使用方法: 1,继承 BaseNetFragment 2,实现 onLoadingData(int pageIndex),getRecyclerItemView(

2016-12-29 21:51:41 390

原创 用 PullToRefreshLayout 实现 RecyclerView 的下拉刷新

PullToRefreshLayout 原文链接:http://blog.csdn.net/zhongkejingwang/article/details/38868463在原 Demo 中找到了 ListView 的实现,但是缺少 RecylerView 的实现方式。 参照 PullableListView 的实现,发现只要实现 Pullable 接口,就能实现下拉刷新和上拉加载。 Pull

2016-12-28 13:02:25 2004

原创 Android 6.0 动态请求权限

Android 6.0 动态请求权限描述:*Android 应用在访问额外的资源或信息时,需要请求相应权限。根据权限的敏感性,系统可能会自动授予权限,或者由用户对请求进行许可。Android6.0及以上应用除了在清单文件中声明权限,敏感权限还需要在用户使用时动态授予。官方定义了普通和危险权限,经测试发现部分手机厂商的敏感权限会有所差异*。 问题:应用中用到 READ_PHONE_STATE 权限

2016-12-06 08:45:09 1354

原创 Android 命令过滤

Android 命令过滤在工作中遇到这样一个问题,当滑动 App 中的色盘时,被控制灯的颜色也要跟随变化。 最开始的做法是在 View 的 onTouch().ACTION_CHANGE 中直接调用发送命令给固件,然而由于 onTouch() 方法在单次滑动触发的 ACTION_CHANGE 事件过多,而固件那边的处理速度和资源有限,无法处理这么快的命令。这时就需要在 App 端做处理了。

2016-12-06 08:43:57 294

原创 Android BLE中心设备的onCharacteristicChanged()方法没有回调

描述:当设备为 Indication 模式时,设备的值有变化时会主动返回给App,App在 onCharacteristicChanged() 方法中能收到返回的值。 Indication: 从机会先向主机发送一条通知,主机接收到通知后去读取从机数据 Notification:从机直接发送给主机数据问题:在App中通过如下代码注册监听,注册成功后就能接收到设备主动反馈的值了。然而以下代码

2016-12-01 15:43:03 13450 6

原创 Android Studio打包APK是遇到的一些问题(Lint检查的错误)

一,Error* : expected resource of type drawable 原因:animation-list的文件放在anim文件夹下了 解决的两种方式:   1,移动文件到drawable文件夹下   2,替换      _loadigIcon.setImageResource(R.anim.loading_animation);   为      

2016-11-28 11:45:07 6426 2

原创 Eclipse转AndroidStudio项目(包含子工程)

一、在Eclipse中通过Export生成Gradle文件1,在Eclipse菜单中打开 File --> Export-->Generate Gradle build files2,选中你的项目工程,包括主工程和子工程(Library),然后点击Finish如果你的工程之前已生成过或包含Gradle文件,需要勾上左下角的“Force overriding of exi

2016-11-28 11:35:14 312

原创 引用Realm数据库后.so文件找不到(UnsatisfiedLinkError)

在使用Realm数据库后,遇到了如下错误:java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[...],nativeLibraryDirectories=[.../lib/arm, /vendor/lib, /system/lib]]] couldn't find "libxmediaplayer.so"是老司机,对这

2016-11-28 11:11:03 700

原创 打包依赖.aar文件以及坑总结

AAR 文件的单模块打包和多模块打包,以及引入到项目中的两种方式,以及常见遇到的问题...

2016-11-28 10:46:56 11743

原创 如何查看Android的ANR(无响应)异常

在Android开发中,当程序发生异常时会抛出异常信息,可以通过如下代码来获取异常信息,然而在ANR时我们在Logcat中并看不到异常信息。Thread.setDefaultUncaughtExceptionHandler(new Thread. UncaughtExceptionHandler() { public void uncaughtException(Thread t, Thr

2016-11-14 10:28:42 11579

原创 限制Edittext输入的字节长度

在给设备重命名时,设备对名字的存储空间一般都是多少字节,而并非多少字,并通常都是采用utf-8的编码。那问题来了,utf-8的编码是1-6个字节的不等长度,如何获取将一个超过30字节的文本转换到30字节以内?Java中获取utf-8文本的字节长度很简单,如下:text.getBytes("utf-8").length但是在把超过30个字节的字符串截取到30个字节

2016-10-15 13:09:09 3250 1

原创 自定义View总结

在开发中对自定义View的使用非常的普遍,对Android的深入理解这也是必须了解的知识点。以下总结了一些常用的知识点,更多内容待补充。。。一、 View的生命周期onFinishInflate() 当View中所有的子控件均被映射成xml后触发onMeasure( int , int ) 确定所有子元素的大小onLayout( boolean , int , int ,

2016-10-14 12:28:13 222

原创 HSV色盘详解

由于公司目前是做智能音乐灯的,由于控灯需要绘制了各种各样的取色器,现在可以已一个老司机的身份来分析一下HSV的取色盘。HSV模型了解它是一个倒锥子模型,这个模型就是按色彩、深浅、明暗来描述的。H是色彩,范围0° ~ 360°,红(0°)、绿(120°)、蓝(240°);S是深浅, S = 0时,只有灰度,越往圆心的位置越偏白;V是明暗,表示色彩的明亮

2016-10-14 10:43:58 5451 1

原创 自定义滚动按钮(滚轮)进度调节器

在开发中遇到一个类似鼠标滚轮效果的UI,在这里写下我的实现思路,希望对你有所帮助。效果图如下:一个滚动条,通过上下滚动来调节进度。这里的难点是滚动时的动画效果,下面一一说来。实现思路1,绘制一组动画图片,从第一个小横杠开始到第一个小横杠结束滚动的这一过程我们用20帧来表示绘制中间的滚动轴用得到的滚动轴与一个比背景圆略小的圆合成,插入滚轴Y

2016-10-13 20:06:38 579

原创 调用系统相机/相册获取图片的完美解决方案

调用系统相机/相册获取图片的事,在百度上找一下能搜到一大堆文章,然而拿过来在真机上跑一下大部分都有问题,根本达不到想要的效果。为什么会拿不到想要的图片呢,最主要的原因是因为图片太大,而获取的图片数据是放在Intent中的。而现在手机的像素普遍都是800W+,一张普通的尺寸为3200*2400px的照片要消耗30MB的内存空间,而一个Intent能传递的数据怎么可能支持这么大的空间,我测试过一些手机

2016-10-13 19:31:48 1709

原创 让按钮在输入法之上显示,实现一个优雅的登陆界面

在做登录界面时,“登录”按钮总是会被输入法挡住,要点击登录需要先收起输入法才能点击,这么多余的操作身为一个有强迫症的程序猿怎么能忍。在做这个之前,首先想到的肯定是设置android:windowSoftInputMode属性,然而并不能达想要的效果,果断放弃。解决办法是给rootView设置一个OnGlobalLayoutListener的监听事件,当布局发生改变时改变控件位置的方式来实现。实

2016-10-13 18:30:45 474

原创 Android M(6.0)扫描不到蓝牙设备的处理办法

在Android6.0手机上扫描不到蓝牙设备(如Nexus6),并会抛出一个异常: java.lang.SecurityException: Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to get scan results

2016-10-13 18:00:05 17050 2

原创 自定义View中文本居中显示

在开发中遇到一个这样的需求,在选择星期时设计狮想要这个这样的效果:看到效果,想当然应该是用CheckBox实现吧,选中时背景蓝色文字白色,未选中时背景透明文字黑色。那最方便的实现方式应该是直接给切图,然而这种用切图,除了因为要做国际化图片量会很大外,另一个原因就是显示效果也不是非常好。另外一种就给CheckBox定义样式,实现思路应该是下面这个样

2016-08-27 16:50:26 12549

原创 自定义TextView,设置Drawable图标居中显示

在Android中,有时需要图标和文字在布局中居中显示,比如这种场景:搜索图标和文字是紧挨着,点击整个白色区域会触发相应的事件,这种情况下如何只用一个View来达到这种效果呢。当然如果是以前就会用一个RelativeLayout来作为点击区域,再加上一个TextView来显示文本,然而我并不喜欢这种实现方式。看下对比效果图:代码实现:

2016-08-27 16:13:52 9844 3

原创 Maven学习笔记(坐标和依赖)

一、坐标一、依赖配置        1,依赖范围        二、依赖传递性       1,何为传递性依赖,打个比方,A 依赖 B, B 依赖 C, 则A 依赖 C。                2,传递性依赖和范围            三、依赖调解        第一原则:路径最近者优

2015-12-26 17:54:15 398

原创 Maven学习笔记(入门篇)

Maven是一个采用纯Java编写的开 源项目管理工具。Maven采用了一种被称之为project object model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中,通过该文件,Maven可以管理项目的整个声明周期,包括编 译,构建,测试,发布,报告等等。目前Apache下绝大多数项目都已经采用Maven进行管理。而Maven本身还支持多种插件,可

2015-12-26 16:35:27 436

原创 Java星期的复选运算

基本实现原理:用一个字节就可以记录选中状态,其中1表示选中,0表示未选中,位置代表星期的位置。代码实现如下:/** * Days of week code as a single int. * 0x00: no day * 0x01: Monday * 0x02: Tuesday * 0x04: Wednesday * 0x08: Thursday * 0x10: Friday

2015-12-09 15:19:17 344

原创 自定义Drawable(文字按钮点击效果设置)

一些在开发UI时经常需要用到的自定义Drawable的代码,整理起来,方便今后高效的开发。1,单选按钮、复选框xml version="1.0" encoding="utf-8"?>xmlns:android="http://schemas.android.com/apk/res/android"> android:drawable="@mipmap/icon_checked

2015-12-03 15:58:14 1739

原创 Dlna音乐播放器

最近做DLNA音乐播放的功能,由于相关资料相对较少,官网上的英文文档又比较难理解,导致实现这一功能花费了大量时间。今天把我的Demo分享给大家。效果图如下:1,本Demo实现了DMR设备的搜索,注册事件监听,获取播放信息,音量,播放暂停,进度更新等功能2,引入cling-core-1.0.5库,主要实现了DMC的功能3,主要逻辑:启动一个简单的Http服

2015-11-04 21:43:19 2160

原创 可拖动的圆形进度条

效果图如下:1,通过继承View,重写onDraw(Canvas canvas)方法,实现界面进度显示2,重写onTouchEvent(MotionEvent event)方法,监听拖动事件3,在监听位置改变时,计算角度,重新调用onDraw()方法进行绘制关键代码如下:public class MusicProgressBar extends View

2015-11-04 21:09:52 4019

Dlna音乐播放器

Dlna音乐播放器,实现了搜索DMR设备,DMC控制的功能,实现播放、暂停、音量、进度条更新、注册监听事件以及传输信息和状态。

2015-10-29

RadioButton和CheckBox自定义样式

Android自定义RadioButton和CheckBox样式,重写RadioButton的onDraw()方法,实现颜色选择器效果。

2015-10-20

可拖动的圆形进度条

Android定义View,实现的一个可拖动进度的圆形进度条。

2015-10-20

附近的人Apps

通过百度LBS开发,显示在附近用此软件的人。

2015-03-24

快递查询Apps

选择快递公司,扫一扫条形码再点击确定变可以查看到自己的快递。选择快递公司的界面采用PinnedHeaderListView + BladeView组合(通讯录界面效果)完成。扫一扫通过调用摄像头以及zxing的条形码或二维码解析包来解析。查询历史记录会保存在SQLite数据库中

2015-03-24

Android短信联系人备份并上传

短信 联系人和通话记录的备份 在AsyncTask内执行 实时显示备份进度 文件以XML格式保存 并上传到JavaWeb服务器 有Web端源码

2015-03-12

空空如也

空空如也

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

TA关注的人 TA的粉丝

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