自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

voo00oov的专栏

读书, 涨姿势!! http://blog.csdn.net/voo00oov

  • 博客(53)
  • 问答 (1)
  • 收藏
  • 关注

原创 一个神奇的网站(快快乐乐写时序图)

一个神奇的网站一个神奇的网站:https://www.websequencediagrams.com/代码即效果如下:

2016-03-22 18:09:45 702

原创 Java单例模式的七种不同写法

JAVA单聊模式的不同写法一. 饿汉/** * 饿汉 */public class Singleton1 { private static final Singleton1 INSTANCE = new Singleton1(); private Singleton1() { } public static Singleton1 getIns

2016-03-22 16:25:02 659

转载 软件人员推荐书目(都是国外经典书籍!!!)

软件人员推荐书目(一) 大师篇 一、 科学哲学和管理哲学 【1】 "程序开发心理学"(The Psychology of Computer Programming : Silver Anniversary Edition) 【2】 "系统化思维导论"(An Introduction to Systems Thinking, Silver Anniversary Edition) 

2016-03-10 08:35:43 1613 1

原创 关于 "java中常量定义在interface中好还是定义在class中好" 的一些思考

java中interface中定义变量都是"public static final" 类型的, 也就是常量, 因此很多人在interface定义常用的常量(这也是本人偏爱的方式); 由此却引起了不少风波, 网上关于此问题的讨论也非常多, 下面说说我的个人意见: 下面是功能等同的两种定义常量的方式: package com.example;public final cla

2015-12-30 16:53:53 25098 10

转载 git revert和git reset的区别

git revert和git reset的区别git revert 是撤销某次操作,此次操作之前的commit都会被保留git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区具体一个例子,假设有三个commit, git st:commit3: add test3.ccommit2: add test2.ccommit1: add test

2015-12-09 10:22:44 598

转载 Android开源项目分类汇总

阅读目录第一部分 个性化控件(View)第二部分 工具库第三部分 优秀项目第四部分 开发工具及测试工具第五部分第一部分 个性化控件(View)主要介绍那些不错个性化的View,包括ListView、ActionBar、Menu、ViewPager、Gallery、 GridView、ImageView、ProgressBar、TextView、Scrol

2015-12-03 09:58:03 669

转载 Android Matrix

Android MatrixMatrix的数学原理平移变换旋转变换缩放变换错切变换对称变换代码验证 Matrix的数学原理在Android中,如果你用Matrix进行过图像处理,那么一定知道Matrix这个类。Android中的Matrix是一个3 x 3的矩阵,其内容如下: Matri

2015-11-23 20:29:50 440

原创 Android Matrix相关操作总结

一. 在Android中, Matrix是一个3x3的矩阵, 有4类基本操作二. 矩阵如图: 关于matrix操作的原理, 这篇文章讲得不错 => 穿越时空三. 四种基本操作1. Translate -> 平移变换2. Scale ->放缩变换3.Rotate -> 旋转变换4. Skew

2015-11-23 19:02:32 551

转载 Android中的矩阵转换 (Matrix转换)

Android中的Matrix转换上面讲到,Matrix由3*3矩阵中9个值来决定。而我们对Matrix的所有设置,也是对这9个值的各种不同的改变,来达到我们想要的效果。下面是Matrix3*3的矩阵结构{MSCALE_X,MSKEW_X,MTRANS_X,MSKEW_Y,MSCALE_Y,MTRANS_Y,MPERSP_0,MPERSP_1,MPERSP_2}

2015-11-20 18:00:02 2305

原创 com.android.dex.DexException: Multiple dex files define的解决办法 (Android Studio)

com.android.dex.DexException: Multiple dex files define的解决办法com.android.dex.DexException: Multiple dex files define编译问题产生的原因, 几个library引用了"同一个"jar包, 这个"同一个" 为什么要加上引号呢, 其实这个jar包就名称和功能来说是完全一样的比如

2015-11-19 18:48:11 8920 2

原创 Proguard混淆Android项目所遇问题及总结

Proguard混淆Android项目所遇问题及总结最近一个老项目需要添加混淆, 因此又对混淆有了更深入的了解. 在此过程中遇到了一下问题, 记录如下: 1. 编译打包错误a. 类重复, 错误信息如下:xyz:compileReleaseNdk UP-TO-DATE:xyz:compileReleaseSources:xyz:proguardReleaseNot

2015-11-19 17:39:44 16122

转载 Android 混淆机制

转自: http://blog.csdn.net/jjwwmlp456/article/details/44977721语法规范说明地址:https://stuff.mit.edu/afs/sipb/project/android/sdk/android-sdk-linux/tools/proguard/docs/index.html#manual/usage.html

2015-11-15 12:41:06 879

原创 BubbleView源码解析

BubbleView源码解析做IM应用时, 聊天界面的消息一般都有一个背景, 我们叫它为"气泡", 一般这个气泡都使用9patch图片, 当是还有一种方法就是 "自定义View". 这类气泡view, 网上有一大堆, 下面就来看看github上的一个开源项目吧BubbleView地址:  https://github.com/lguipeng/BubbleView

2015-11-12 13:43:07 2424

转载 几种类间关系:继承、实现、依赖、关联、聚合、组合及UML实现图

几种类间关系:继承、实现、依赖、关联、聚合、组合及UML实现图继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间 最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性;实现指的是一个class类实现interface接口(可以是多个)

2015-11-10 18:36:37 492

原创 自定义可拖拽View(工具类ViewDragHelper的用法)

android提供了GestureDetector这个类用于常用手势识别, 如单击、双击、滑动等; 对于拖拽手势的分析识别并不理性,因此support-v4包提供了一个工具类ViewDragHelper, 使用此工具类可以轻松实现可拖拽View(准确的说应该是尺寸拖拽的View容器), 闲话少说, 请看代码:  DragContainerLayout.java/

2015-11-04 18:14:19 1648

转载 Android BitmapShader 实战 实现圆形、圆角图片

1、概述记得初学那会写过一篇博客Android 完美实现图片圆角和圆形(对实现进行分析),主要是个自定View加上使用Xfermode实现的。其实实现圆角图片的方法应该很多,常见的就是利用Xfermode,Shader。本篇博客会直接继承直接继承ImageView,使用BitmapShader实现圆角的绘制,大家如果耐着性子看完,我估计什么形状都能绘制出来。2、效果图

2015-11-03 14:27:55 500

转载 如何搭建个人博客

如何搭建个人博客1. 购买VPSvps是什么,大家可以百度百科,我这里就不解释了,简单的说,就是一台服务器。vps有很多提供商,国外的一大把,价格也参差不齐,当然,服务也参差不齐,大一点的,亚马逊啦,linode啦,还有一些其他的,大家网上找一找,找个价格和速度合适的,国内嘛,现在做得还不错的有阿里云,就速度上来说,国内的阿里云怎么都比国外的要快,只是备案比较麻烦,你懂

2015-09-20 09:14:20 719 1

原创 [Gradle] 执行gradlew命令时抛异常 (java.lang.NoClassDefFoundError: org/apache/commons/cli/CommandLineParser)

gradle最近发布了2.6, 所以想把android studio中的gradle改成2.6由于我是使用命令gradlew的, 所以把gradle/wrapper/gradle-wrapper.properties文件关于gradle的url更新了, 如下#Wed Sep 09 16:16:48 CST 2015distributionBase=GRADLE_USER_HOMEd

2015-09-09 16:41:05 5767

原创 怎么获取键盘的高度

最近做项目的时候要使用emoj表情, emoj标签的输入块要和软键盘的高度一致, 于是有了获取软键盘高度的需求, 废话少说, 下面是我写的一个获取键盘高度的工具类:public class KeyboardHeightUtils { /** * 初始化键盘高度 (键盘弹出时才有效; 首次进入Activity时, 计算的高度newKeyboardHei

2015-08-26 16:38:58 924

原创 怎么判断软键盘是否显示

有人说用InputMethodManager的isActive()来判断软键盘是否可见, 经测试发现此方法总是返回true要判断软键盘是否可见, 下面是一种解决方法, 在Activity中可以使用如下代码判断软键盘是显示还是隐藏View view = getWindow().peekDecorView();if (view != null) { //软件盘处于显示状态

2015-08-26 16:16:48 2821

原创 监听Back键, onBackPressed()和onkeyDown()都无效

Android中软键盘弹出时, 点击Back键, onBackPressed()和onkeyDown()方法都没有执行, 下面是一种解决方法: 在Activity中重写dispatchKeyEvent()方法@Overridepublic boolean dispatchKeyEvent(KeyEvent event) { if (event.getKeyCode()

2015-08-26 15:54:57 3388

转载 Using Genymotion with Charles Proxy

Using Genymotion With Charles ProxyPosted on January 22, 2014In your Genymotion Android emulator…Settings -> Wifi -> Press and hold your active networkSelect “Modify Network”Select “Show Adv

2015-08-14 18:15:54 1362

转载 快速掌握 Android Studio 中 Gradle 的使用方法

快速掌握 Android Studio 中 Gradle 的使用方法快速掌握 Android Studio 中 Gradle 的使用方法Gradle是可以用于Android开发的新一代的 Build System, 也是 Android Studio默认的build工具。Gradle脚本是基于一种JVM语言 -- Groovy,再加上DSL(领域特定语言)组

2015-08-10 22:10:19 531

原创 java中两个空字符串相加, 等于什么? (我说的空字符串是指null)

java代码如下:String a = null;String b = null;String c = a + b;System.out.println(c);猜猜输出什么??你以为这里会抛空指针异常吗? 你以为连个null相加还是null吗? 好吧, 我错了, 输出的居然是nullnull  !!!!纳尼, 这是无中生有?! 这是1+1=3吗?! 瞬

2015-08-03 18:53:18 3568 1

转载 抓包工具Charles (移动开发必备工具, 网络api调试的神器)

移动开发必备抓包工具: Charles今天就来看一下Mac上如何进行抓包,之前有一篇文章介绍了使用Fidder进行抓包http://blog.csdn.net/jiangwei0910410003/article/details/19806999不过可惜的是,Fidder使用C#开发的,所以就不能在Mac上使用了,不过还有另外一个抓包神器,就是Charl

2015-07-30 17:29:13 979

原创 正则表达式中的逻辑运算符或(怎么用逻辑运算符或连接两个正则表达式)

今天使用正则表达式是遇到一个问题, 磨了半天, 发现犯了个低级错误, 因此记录下来加深印象问题描述: 我需要把 ^drawable(-[a-zA-Z0-9]+)*$  和  ^mipmap(-[a-zA-Z0-9]+)*$ 这两个正则表达式用或的关系连接起来我尝试了一下方法都未成功!!Pattern.compile("^drawable(-[a-zA-Z0-9]+)*$ |

2015-07-20 11:07:00 29566 1

原创 关于AndroidStudio引用外部库时的问题(gradle构建机理)

今天看到一个检测内存泄漏的工具LeakCanary(关于LeakCanary的用法有中文介绍), 于是想写个demo试试.结果, 遇到了一个问题LeakCanary类找不到. 我下载了一个Demo, 我的配置文件和这个Demo一模一样!!我无论我怎么同步build.gradle文件, 都没有效果.我的module下的build.gradle配置文件的片段如下: 

2015-07-17 15:12:17 3078

原创 使用ToolBar遇到的问题

1. 启动app就崩溃, 错误信息: AppCompat does not support the current theme features2. 启动app就崩溃, 错误信息: A TaskDescription's primary color should be opaque3. ActionBarActivity一过时

2015-07-13 16:49:51 929

转载 解决Android Studio在MacbookPro 13下卡顿的问题

解决Android Studio在MacbookPro 13下卡顿的问题问题描述目前我正在使用MacbookPro13寸2015年中配开发应用,发现Android Studio使用时出奇的卡顿,具体表现在输入的时候经常会假死3到4秒钟,特别是编辑layout的时候,简直是没法用了。按理说,8G内存,i5处理器不应该出现这样的情况,所以我上网搜了一下,有的提到内存至少要1

2015-07-03 15:07:19 1524

原创 Linux下的快捷技巧大全(ubuntu)

Linux下的快捷命令大全查看linux是32位还是64位“file /sbin/init” 或者 “file /bin/ls” getconf LONG_BIT” 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。更新中。。

2015-06-14 09:56:56 423

转载 Java NIO、NIO.2学习笔记

Java NIO、NIO.2学习笔记目录1. NIO、NIO.2简介2. NIO中的关键技术1. NIO、NIO.2简介Java中的输入流、输出流都是阻塞式的输入、输出。不仅如此,传统的输入流、输出流都是通过字节的移动来处理的(即使是字符流,在底层也是通过字节流来进行处理的),也就是说,面向流的输入/输出系统一次只能处理一个字节,因此面向流的输入/输出系统通常效率不高。

2015-05-21 17:42:09 700

原创 Java开发中的乱码解决

Java开发中经常遇到乱码问题, 下面是乱码解决中的比较简单的一种(乱码问题一般是由于编码和解码所用的编码格式不一致而导致的)大码如下: //client端String codeFmt;String sysVersion = System.getProperty("java.version");double sVersion = Double.valueOf(sysVer

2015-05-19 10:22:37 572

转载 Java中的Enum的使用与分析

Java中的Enum的使用与分析示例:public enum EnumTest {     FRANK("The given name of me"),     LIU("The family name of me");     private String context;     private String getContext(){

2015-05-18 16:44:12 478

原创 使用HttpURLConnection的getContentLength()方法返回-1??

今天使用HttpURLConnection类的getContentLength()方法时得到-1, 这是为什么呢??是这样的, 用HttpURLConnection的getContentLength获取传输数据的字节数时, 必须与服务器端协商, 即服务器端必须设置过"content-length"头: HttpURLConnection.getContentLength()方法对应于服务端

2015-05-18 14:21:30 9619 2

转载 TCPdump抓包工具命令

TCPdump抓包命令 tcpdump是一个用于截取网络分组,并输出分组内容的工具。tcpdump凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具。 tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的Linux系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正

2015-05-15 18:20:12 546

原创 Android中 view的双缓冲技术

view实现双缓冲技术当要绘制的数据量比较大,绘图时间比较长时,重复绘图会出现闪烁现象,引起闪烁现象的主要原因是视觉反差比较大。使用双缓冲技术可以解决这个问题,Surfaceview默认是使用双缓冲技术的。在Android上实现双缓冲技术的步骤是:创建一个屏幕大小(实际绘图区域)的缓冲区(Bitmap),创建一个画布(Canvas),然后设置画布的bitma

2015-05-15 17:30:35 2473

原创 Android TypedValue.applyDimension()的用法

这个方法的作用是 把Android系统中的非标准度量尺寸转变为标准度量尺寸 (Android系统中的标准尺寸是px, 即像素)Android系统中的尺寸单位有: 标准单位: px (px是安卓系统内部使用的单位, dp是与设备无关的尺寸单位 )非标准单位: dp, in, mm, pt, spTypedValue.applyDimension()方法的功能就是把非标

2015-05-15 15:53:04 16173 2

原创 Android 点击通知栏中的通知启动应用

今天再做项目中遇到一个问题: "点击通知时, 应用不能启动", 源码如下: Context application = getApplicationContext();Intent resultIntent = new Intent(application, MainActivity.class);resultIntent.setFlags(Intent.FLAG_ACTIVITY

2015-05-15 11:18:56 6975 1

转载 Java位运算在程序设计中的使用:位掩码(BitMask)

在Java中,位运算符有很多,例如与(&)、非(~)、或(|)、异或(^)、移位(>)等。这些运算符在日常编码中很少会用到。在下面的一个例子中,会用到位掩码(BitMask),其中包含大量的位运算。不只是在Java中,其他编写语言中也是可以使用的。例如,在一个系统中,用户一般有查询(Select)、新增(Insert)、修改(Update)、删除(Selete)四种权限,四种权

2015-05-14 11:39:33 505

转载 如何使用Git下载Android源码

Github下载Android源码 1 git clone https://android.googlesource.com/device/common.git 2 git clone https://android.googlesource.com/device/google/accessory/arduino.git 3 git clone https://a

2015-05-12 15:16:53 1821

空空如也

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

TA关注的人

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