自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

景三的专栏

景行行止,三省吾身。

  • 博客(109)
  • 资源 (5)
  • 收藏
  • 关注

原创 【Android自定义View】仿Photoshop取色器ColorPicker(四)完结篇

ColorPicker一款基于HSV颜色空间的仿Photoshop取色器的Android版颜色拾取器。github地址:https://github.com/relish-wang/ColorPicker前言上一篇已经简单介绍了ColorPicker的核心自定义控件ColorPickerView的监听事件相关代码。接下来我们详细解析一下ColorPickerDialog的相关代码注: - 1 如

2017-08-24 10:37:58 1278 1

原创 【Android自定义View】仿Photoshop取色器ColorPicker(三)

ColorPicker一款基于HSV颜色空间的仿Photoshop取色器的Android版颜色拾取器。github地址:ColorPicker前言上一篇已经简单介绍了ColorPicker的核心自定义控件ColorPickerView的绘制流程。接下来我们详细解析一下ColorPickerView的监听事件相关代码。注: - 1 如果你对HSV颜色空间和RGB颜色空间不够熟悉的话,请参看该系列的

2017-08-19 13:35:13 2131 2

原创 【Android自定义View】仿Photoshop取色器ColorPicker(二)

ColorPicker一款仿Photoshop取色器的Android版取色器。github地址:ColorPicker前言上一篇已经简单介绍了ColorPicker的项目结构以及两种颜色空间,接下来我们详细解析一下ColorPicker的核心自定义控件ColorPickerView。ColorPickerView在阅读代码之前,我们先看一下ColorPicker的布局以及一些标注的数值在代码里的变量

2017-08-17 22:23:08 1702

原创 【Android自定义View】仿Photoshop取色器ColorPicker(一)

ColorPicker 一款仿Photoshop取色器的Android版取色对话框。采用HSV颜色空间,可手动选取想要的颜色,也可以手动输入具体颜色的16进制编码以获取颜色(如:0xFFFFFF表示白色)。github地址:ColorPicker效果图总体预览ColorPicker项目结构如下图所示:核心自定义控件: ColorPickerView.java颜色拾取对话框: ColorPicker

2017-08-14 16:05:44 2378

原创 TakePhoto和蒲公英(pgyer)的android.support.v4.content.FileProvider冲突

一 前言先介绍一下两个框架:1 TakePhoto一款用于在Android设备上获取照片(拍照或从相册、文件中选择)、裁剪图片、压缩图片的开源工具库2 蒲公英免费的应用托管平台|App应用众测分发二 起因1 Android7.0及以上拍照时,由于出于安全考虑,Android 7.0[API24]以及以上版本不支持file://,使用content://URI 详见:Android7.0拍照失败Fi

2017-02-27 17:48:14 20658 13

翻译 【Java基础】使用happens-before关系处理Java内存一致性问题

使用happens-before关系处理Java内存一致性问题原文: 《Handling Java Memory Consistency with happens-before relationship》文章目录使用happens-before关系处理Java内存一致性问题**Visibility****Happens-before relationship****Synchronizin...

2020-03-04 12:04:02 181

翻译 ViewModel: 一个简单例子

ViewModel: 一个简单例子原文地址: 《ViewModels: A Simple Example》文章目录ViewModel: 一个简单例子介绍潜在的问题一个非常简单的例子第一步:创建一个ViewModel类第二步: 关联UI控制器和ViewModel第三步: 在你的UI控制器中使用ViewModel对`ViewModelsProviders.of`的更深入了解结论和进一步学习...

2020-02-17 17:30:57 461

翻译 【WorkManger】使用WorkManager来处理后台任务(Kotlin版)(一)

使用WorkManager来处理后台任务(Kotlin版)(一)原文地址: 《Background Work with WorkManager - Kotlin》1 简介在Android开发中有很多用于处理延迟处理的后台任务的方式。这个代码实验室(codelab)涵盖了WorkManager(一个向后兼容的、灵活的、简单易用的、用于延迟处理后台任务的代码库(library))的用法。什...

2020-02-16 15:06:43 477

原创 【Android自定义View】车牌号输入法

VehicleEditTextAndroid用于车牌号输入的自定义键盘.仿"支付宝-车主服务-添加车辆-车牌号"输入框展示的车牌号输入键盘。以下是本作与支付宝的对比图:一、效果展示二、如何使用在app/build.gradle的dependencies节点下添加:implementation "wang.relish.vehicleedittext:vehicleedittext:0...

2019-07-24 20:28:57 1134 3

转载 【常见问题】API 'variant.getJavaCompile()' is obsolete and has been replaced with 'variant.getJavaCompi

思路来源: https://github.com/TakWolf/Android-Bintray-Publish-Demo/commit/220ff923856afcb0f30638a3cb23b19b6e5cdd00

2019-07-13 10:33:55 3607 2

原创 AutoCompleteTextView最佳实践-最简例子篇

AutoCompleteTextView最佳实践-最简例子篇此系列文章记录了一次使用AutoCompleteTextView(以下简称ACTV)的踩坑过程,并复盘整个的解决流程。本篇文章笔者试图通过介绍一个AutoCompleteTextView的最简例子,来让读者直观地感受到这个控件实际展现效果,也较为容易地掌握它的基本使用方法。以下是此系列所有文章《AutoCompleteTextV...

2019-05-27 10:31:56 2927

原创 AutoComleteTextView最佳实践-原理剖析篇

AutoComleteTextView最佳实践-原理剖析篇此系列文章记录了一次使用AutoCompleteTextView(以下简称ACTV)的踩坑过程,并复盘整个的解决流程。本文着重讲解ACTV触发候选列表展示的代码总流程,深入了解Android的控件传递事件的机制。以下是此系列所有文章《AutoCompleteTextView最佳实践-总集篇》《AutoCompleteTextVi...

2019-05-27 10:28:48 201

原创 AutoCompleteTextView最佳实践-总集篇

AutoCompleteTextView最佳实践此系列文章记录了一次使用AutoCompleteTextView(以下简称ACTV)的踩坑过程,并复盘整个的解决流程。以下是此系列所有文章[《AutoCompleteTextView最佳实践-总集篇》][main]《AutoCompleteTextView最佳实践-最简例子篇》《AutoCompleteTextView最佳实践-原理剖析...

2019-05-27 10:09:32 750

原创 【Java】俄罗斯方块Java版

Tetris俄罗斯方块Java版本(Cover: 小翼)仓库地址: https://github.com/relish-wang/Tetris关于笔者景三,程序员,主要从事Android平台基础架构方面的工作,欢迎交流技术方面的问题,可以去我的Github提issue或者发邮件至relish.wang@gmail.com与我交流。文章目录Tetris效果图如何运行懒人运行macOS/...

2019-05-17 13:53:19 1448 1

原创 【Android常用】监听Android软键盘弹出与收回事件

KeyboardListener关于作者景三,程序员,主要从事Android平台基础架构方面的工作,欢迎交流技术方面的问题,可以去我的Github提issue或者发邮件至relish.wang@gmail.com与我交流。文章目录KeyboardListener零、项目简介一、效果演示二、使用方法三、更新日志四、致谢零、项目简介KeyboardListener是从facebook/r...

2019-05-07 17:47:50 1353

原创 【三方库】大华乐橙Demo(Android Studio版)

大华乐橙Demo(Android Studio版)https://github.com/relish-wang/Lecheng

2019-04-09 14:57:49 771

原创 【C语言】从认识HelloWorld开始

#include<stdio.h>int main(){ printf("Hello World!"); return 0;}1 #include<stdio.h> include: 包括;包含;计入;包住那我这个程序包含了什么呢, 继续看下去。 stdio是个什么东西? 这是C语言的标准输入输出库。 stdio是三个单...

2018-06-22 09:36:13 221

原创 【hustoj】踩坑记录(updating)

注册审核(不开放)文件所在路径:/home/judge/src/web/include/db_info.inc.php 修改字段:OJ_REGISTER 改为:OJ_REGISTER = false 即可 mac系统在vi下delete键无法删除字符,可以再命令模式下按x删除选中的字符,然后在输入模式下输入false即可...

2018-04-24 20:33:16 285

原创 【git】合并起源不同的git分支(refusing to merge unrelated histories)

合并git仓库背景: 我和女票分别维护着一份PAT题解相关的repository, 区别是她使用的是JS代码,我使用的是Java(偶尔会用C/C++、python等)(PS:欢迎使用各种语言的各路大佬加入我们的repo)。后来我们一拍即合,决定合成一个repository。 想法是这样的,我fork她的repository,commit & push我的代码后,再发起pull r...

2018-03-14 17:05:31 354

原创 【React Native】RN错误更新中……

1、 undefined is not an object(evaluating ‘nextSceneConfig.defaultTransitionVelocity’)光看错误提示真的找不到问题所在: 解决的办法: 在使用Navigator的时候configureScene我使用的是configureScene={() => { return Navigator.SceneCon

2017-09-13 20:43:26 690

转载 【hexo】解决hexo神烦的DTraceProviderBindings MODULE_NOT_FOUND

原文:http://kikoroc.com/2016/05/04/resolve-hexo-DTraceProviderBindings-MODULE-NOT-FOUND.html今晚折腾hexo的时候遇到很恶心的hexo报错,执行任何hexo命令都会报如下错误。hexo报错:{ [Error: Cannot find module './build/Release/DTraceProviderBi

2017-08-10 14:07:55 350

原创 【kotlin】Type mismatch.Require:XXX.setOnXXXListener.Found:()->Unit

1 前言当我在把一个AndroidStudio项目(Java编写的)转化为kotlin代码的时候,出现了这个问题 用AndroidStudio自动转化的代码结构大致如下(代码存在错误的):package wang.relish.democlass XXX { private var mOnXXXListener: OnXXXListener? = null!! fun trigge

2017-07-05 11:37:13 1629

原创 【数据库】Sqlite获取long类型的当前时间

select strftime('%s','now','localtime')*1000+(strftime('%f','now','localtime')-strftime('%S','now','localtime'))*1000;参考资料: %d 月份, 01-31 %f 小数形式的秒,SS.SSS %H 小时, 00-23 %j 算出某一天是该年的第几天,001-366

2017-06-02 15:33:24 1200

原创 【Android常用】Broadcast的onReceive方法中弹出AlertDialog

问题描述在广播接收器(BroadcastReceiver)的onReceive(Context context, Intent intent)方法中弹出一个AlterDialog方案一感谢懿亮羽嘉提供的方案: Broadcast的onReceive方法中弹出AlertDialog美中不足之处: - 一、4.x、5.x、6.x中android.app.AlertDialog的显示效果都不一样 -

2017-02-15 09:25:44 2375

原创 【踩坑】如何获得Toolbar上原生的返回按钮

0 获得返回按钮的图标出于一个很蠢的原因需要这个返回按钮的图标。 起初,想法是获取这个图标的Drawable对象或者Bitmap对象,把它存到手机SD卡中,取出来。1 尝试一1.1 取得Drawable对象查看源码后发现,可以取得它的Drawable对象:intTypedArray a = TintTypedArray.obtainStyledAttributes(this, nu

2017-01-06 19:42:36 3565

原创 【Windows小技巧】批量重命名文件

2016/12/14更新注:如果文件名包含空格,命令应写成ren "s0 (1).gif" s001.gif,简而言之,就是加上双引号!!!原因:系统将s0和(1).gif认为是两个参数,再加上后面的s001.gif一共三个参数,会认为你语法不正确。批量重命名文件1 首先要知道这么一个命令: ren old_file_path new_file_pathfile_path:要求相对或绝对路径+

2016-12-14 23:13:33 27055 9

原创 LitePal无法使用自定义主键的临时解决方案

LitePal无法使用自定义主键的临时解决方案1 解决LitePal的默认主键名为id,类型为long。而且不可改变,无法设置其他名称,也无法设置其他类型。 对于一些主键使用了String类型的后台数据库,数据储存就很容易出问题。 最常见的问题就是,大量重复数据。因为LitePal认为这些数据的id不同,是不同的数据。 为此,本人提出了一种临时解决方案。并不是很完美,但能解决大部分情况。思路:

2016-12-12 21:40:18 7745 2

原创 【日常踩坑】ButterKnife:Attribute value must be constant

Attribute value must be constant在搜索Attribute value must be constant后得到这样的说明: Injection does not work in library projects意为:在AndroidStudio的library的module中无法使用ButterKnife。——–2017年8月23日更新——–经lyankj提醒,B

2016-10-27 10:28:12 5760 5

原创 Android7.0新特性介绍(二)——通知增强功能

Android7.0新特性上篇讲了Android7.0新特性介绍(一)——多窗口支持,这篇讲讲Notification新增的API。首先奉上官网介绍——通知。2 通知增强功能注:本文引用v4 支持库中的 NotificationCompat.Builder 类。Android 3.0(API 级别 11)中已添加类 Notification.Builder。2.1 通知优先级您可以根据需要设置通知的

2016-10-21 14:33:36 6463

原创 Android7.0新特性介绍(一)——多窗口支持

Android7.0新特性关于Android7.0介绍最权威的当然是https://developer.android.com/about/versions/nougat/android-7.0.html啦。略一翻看,发现新东西还蛮多。为了简明扼要,我只整理了手机平板相关的(不包括AndroidTV)。1 多窗口支持 (在手机和平板中叫分屏模式,最多就俩窗口)在 Android N 中,Google

2016-10-20 17:45:01 2894

翻译 【Android死丢丢】如何在AndroidStudio项目中导入aar包并使用

导入一个.arr包:1 点击【File>New>New Module】2 选择 【Import .JAR/.AAR Package,点击【Next】3 输入.arr文件所在路径并点击【finish】.4 点击【File>Project Settings 】(或者使用快捷键[Ctrl+Shift+Alt+S](适用于Windows)).5 在左侧菜单【Modules】栏目下,选择需要依赖.a

2016-10-11 17:27:43 7204 1

原创 【AngularJS: Up & Running】第05章_AngularJS服务揭秘

1 AngularJS服务概念: AngularJS中的服务指的是一些函数或者对象,它们可以在整个应用中持有某些行为和状态。AngularJS的服务: 工厂类、服务和提供器服务的功能: 不断的重复的行为、共享状态、缓存、工厂类等2 页面迁移时的销毁与重建HTML:<!DOCTYPE html><html ng-app="notesApp"><head> <script

2016-09-26 19:31:08 359

原创 【AngluarJS: Up & Running】P69 CheckBox的双向数据绑定

《AngularJS即学即用》书上的一个错误,坑死我了。真是前人留坑后人踩。 书上的源码:<html ng-app="notesApp"><head><title>Notes App</title></head><body ng-controller="MainCtrl as ctrl"><div> <h2>What are your favorite sports?</h2>

2016-09-26 09:31:30 540 1

原创 【AngularJS: Up & Running】第04章_表单、输入和服务

1 ng-model的使用ng-model指令:进行数据的双向绑定<input type="text" ng-model="ctrl.username">You typed {{ctrl.username}}angular.module('notesApp', []) .controller('MainCtrl', [function () { this.username

2016-09-23 18:58:19 355

原创 【AngularJS: Up & Running】第02章_基本的AngularJS指令及控制器

1 数组的操作与显示(ng-repeat简单使用)ng-repeat使用类似for-each循环<div ng-repeat="note in ctrl.notes"> <span class="label">{{note.label}}</span> <span class="status" ng-bind="note.done"></span></div>angular.mod

2016-09-22 15:57:11 388

原创 【日常踩坑】kindle设备收不到qq邮箱发送的文件

kindle设备收不到qq邮箱发送的文件一、前提kindle设备收到邮箱发来的文件的前提如下: - kindle设备已注册,有一个特定的kinde邮箱。如:abc@kindle.cn - 发送文件的邮箱在kindle的信任邮箱列表中。像这样: - 邮件确实发送成功了。像这样: - kindle连了网了二、关于qq邮箱其实上面说的都不重要。 QQ邮箱有一个自定义英文邮箱名称的功能。

2016-09-22 10:12:21 14587

原创 AngularJs入门

1 $scope(作用于一个Controller)与$rootScope(全局)的作用域区别2 特殊变量名(如:$scope,$rootScope)在js压缩(类似Android的代码混淆)过程中避免被替换而报错的解决方案原:app.controller('secondController', function ($scope, $rootScope) { $scope.n

2016-09-21 14:53:24 371

原创 DataBinding入门使用

DataBinding入门使用一、环境Android Studio 1.3+ Gradle版本>=1.5.0-alphal二、依赖classpath ‘com.android.tools.build:gradle:1.5.0’ 然后修改对应模块(Module)的 build.grade:android { .... dataBinding { enabled =

2016-09-21 14:48:23 378

原创 【Android死丢丢】MVP模式遇到Android Studio Template

MVPActivity-Template项目地址:https://github.com/relish-wang/MVPActivity-Template0 导读MVP模式耳熟能详。虽然它降低了程序的耦合度,利于团队协作以及后期维护,但是它增加了代码量和文件量。程序员不得不每次为一个界面建立至少6个文件(三个接口,三个实现类,分别对应M、V、P),以及接口与实现类的继承关系、MVP三者之间的关系。如图

2016-09-07 16:08:48 1265

原创 【Android死丢丢】Gradle本地依赖(Win)

1 File->SettingFile->Setting 在搜索栏输入gradle 选中Gradle,右侧窗口上选择Use default gradle wrapper(recommended),并勾选Offlime work 2 下载离线gradle先查看gradle版本(C:\Users\wangxina.gradle\wrapper\dists) 然后到http://services

2016-08-29 07:48:22 1046

Android监听软键盘弹出和收起事件

监听Android软键盘弹出和收起事件(所有代码都是抽离自facebook/react-native源码中, 亲测有效, 放心食用)。回调事件方法参数包含<strong>键盘是否弹出</strong>(isShow)、<strong>键盘高度</strong>(keyboardHeight)、<strong>屏幕可用高度</strong>(screenHeight)、<strong>屏幕宽度</strong>(screenWidth)。

2019-05-08

ogg音乐文件

ogg音乐文件

2017-02-16

阿里巴巴Java开发手册v1.0.1.pdf

2017-02-14

JAVA文件下载(限速、进度条)

http://blog.csdn.net/r3lish/article/details/51912543 进度条:78%[===================> ]97.7K/s, will be finished in 75.59s 限速、文件网络地址、文件本地路径,均可在代码里修改。

2016-07-14

可滑动柱状图,显示一周数据的折线图

【android studio的一个module】这两个统计图的入参只需要ArrayList<Pillar>就行了(自定义Pillar类中只有String date用于显示时间;double value用于显示数值)

2015-09-06

空空如也

空空如也

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

TA关注的人 TA的粉丝

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