
Android开发
文章平均质量分 69
Android开发相关
voo00oov
十步杀一人,千里不留行。事了拂衣去,深藏身与名。
http://blog.youkuaiyun.com/voo00oov
展开
-
Android学习 ContentProvider数据更新与Observer模式
Android学习 ContentProvider数据更新与Observer模式一 Observer模式意图: 定义对象之间一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被更新。 依赖(Dependents)、发布-订阅(Publish-Subscribe)。处理一对多情况下对象之间的依赖关系。对象之间必然会存在依赖关系转载 2015-04-22 18:33:16 · 517 阅读 · 0 评论 -
怎么判断软键盘是否显示
有人说用InputMethodManager的isActive()来判断软键盘是否可见, 经测试发现此方法总是返回true要判断软键盘是否可见, 下面是一种解决方法, 在Activity中可以使用如下代码判断软键盘是显示还是隐藏View view = getWindow().peekDecorView();if (view != null) { //软件盘处于显示状态原创 2015-08-26 16:16:48 · 2881 阅读 · 0 评论 -
抓包工具Charles (移动开发必备工具, 网络api调试的神器)
移动开发必备抓包工具: Charles今天就来看一下Mac上如何进行抓包,之前有一篇文章介绍了使用Fidder进行抓包http://blog.youkuaiyun.com/jiangwei0910410003/article/details/19806999不过可惜的是,Fidder使用C#开发的,所以就不能在Mac上使用了,不过还有另外一个抓包神器,就是Charl转载 2015-07-30 17:29:13 · 1030 阅读 · 0 评论 -
怎么获取键盘的高度
最近做项目的时候要使用emoj表情, emoj标签的输入块要和软键盘的高度一致, 于是有了获取软键盘高度的需求, 废话少说, 下面是我写的一个获取键盘高度的工具类:public class KeyboardHeightUtils { /** * 初始化键盘高度 (键盘弹出时才有效; 首次进入Activity时, 计算的高度newKeyboardHei原创 2015-08-26 16:38:58 · 1009 阅读 · 0 评论 -
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 · 1401 阅读 · 0 评论 -
自定义可拖拽View(工具类ViewDragHelper的用法)
android提供了GestureDetector这个类用于常用手势识别, 如单击、双击、滑动等; 对于拖拽手势的分析识别并不理性,因此support-v4包提供了一个工具类ViewDragHelper, 使用此工具类可以轻松实现可拖拽View(准确的说应该是尺寸拖拽的View容器), 闲话少说, 请看代码: DragContainerLayout.java/原创 2015-11-04 18:14:19 · 1762 阅读 · 0 评论 -
BubbleView源码解析
BubbleView源码解析做IM应用时, 聊天界面的消息一般都有一个背景, 我们叫它为"气泡", 一般这个气泡都使用9patch图片, 当是还有一种方法就是 "自定义View". 这类气泡view, 网上有一大堆, 下面就来看看github上的一个开源项目吧BubbleView地址: https://github.com/lguipeng/BubbleView原创 2015-11-12 13:43:07 · 2507 阅读 · 0 评论 -
Android 混淆机制
转自: http://blog.youkuaiyun.com/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 · 975 阅读 · 0 评论 -
Android Matrix相关操作总结
一. 在Android中, Matrix是一个3x3的矩阵, 有4类基本操作二. 矩阵如图: 关于matrix操作的原理, 这篇文章讲得不错 => 穿越时空三. 四种基本操作1. Translate -> 平移变换2. Scale ->放缩变换3.Rotate -> 旋转变换4. Skew原创 2015-11-23 19:02:32 · 608 阅读 · 0 评论 -
Android Matrix
Android MatrixMatrix的数学原理平移变换旋转变换缩放变换错切变换对称变换代码验证 Matrix的数学原理在Android中,如果你用Matrix进行过图像处理,那么一定知道Matrix这个类。Android中的Matrix是一个3 x 3的矩阵,其内容如下: Matri转载 2015-11-23 20:29:50 · 510 阅读 · 0 评论 -
Android BitmapShader 实战 实现圆形、圆角图片
1、概述记得初学那会写过一篇博客Android 完美实现图片圆角和圆形(对实现进行分析),主要是个自定View加上使用Xfermode实现的。其实实现圆角图片的方法应该很多,常见的就是利用Xfermode,Shader。本篇博客会直接继承直接继承ImageView,使用BitmapShader实现圆角的绘制,大家如果耐着性子看完,我估计什么形状都能绘制出来。2、效果图转载 2015-11-03 14:27:55 · 541 阅读 · 0 评论 -
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 · 9056 阅读 · 2 评论 -
监听Back键, onBackPressed()和onkeyDown()都无效
Android中软键盘弹出时, 点击Back键, onBackPressed()和onkeyDown()方法都没有执行, 下面是一种解决方法: 在Activity中重写dispatchKeyEvent()方法@Overridepublic boolean dispatchKeyEvent(KeyEvent event) { if (event.getKeyCode()原创 2015-08-26 15:54:57 · 3609 阅读 · 0 评论 -
关于AndroidStudio引用外部库时的问题(gradle构建机理)
今天看到一个检测内存泄漏的工具LeakCanary(关于LeakCanary的用法有中文介绍), 于是想写个demo试试.结果, 遇到了一个问题LeakCanary类找不到. 我下载了一个Demo, 我的配置文件和这个Demo一模一样!!我无论我怎么同步build.gradle文件, 都没有效果.我的module下的build.gradle配置文件的片段如下:原创 2015-07-17 15:12:17 · 3155 阅读 · 0 评论 -
Android实现获取本机中所有图片(Loader,CursorLoader,LoaderManager,SimpleCursorAdapter的简单应用)
Android实现获取本机中所有图片本文转自:http://www.cnblogs.com/hanyonglu/archive/2012/05/10/2494908.html本示例演示如何在Android中使用加载器(Loader)来实现获取本机中的所有图片,并进行查看图片的效果。 在这个示例中,我使用android-support-v4.jar中的加载器(Loa转载 2015-04-16 17:30:34 · 3651 阅读 · 0 评论 -
关于CursorAdapter的getItemId方法的返回值
CursorAdapter的getItemId方法的返回的是_id列的值.原创 2015-04-16 18:25:33 · 766 阅读 · 0 评论 -
如何使用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 · 2028 阅读 · 0 评论 -
Android5.0 startService时崩溃 错误"Service Intent must be explicit"
Android 5.0之前启动Service有两种方式: 显示和隐式. Android5.0有个新特性”Service Intent must be explitict”, 也就是说只能实用显示方式启动Service, 所以实用隐式方式启动 Service时会crash, 我们可以看看源码, startService方法到底干了 什么: 方法调用: startService()->st原创 2015-05-04 15:45:54 · 2255 阅读 · 0 评论 -
Android TypedValue.applyDimension()的用法
这个方法的作用是 把Android系统中的非标准度量尺寸转变为标准度量尺寸 (Android系统中的标准尺寸是px, 即像素)Android系统中的尺寸单位有: 标准单位: px (px是安卓系统内部使用的单位, dp是与设备无关的尺寸单位 )非标准单位: dp, in, mm, pt, spTypedValue.applyDimension()方法的功能就是把非标原创 2015-05-15 15:53:04 · 16902 阅读 · 2 评论 -
Android 点击通知栏中的通知启动应用
今天再做项目中遇到一个问题: "点击通知时, 应用不能启动", 源码如下: Context application = getApplicationContext();Intent resultIntent = new Intent(application, MainActivity.class);resultIntent.setFlags(Intent.FLAG_ACTIVITY原创 2015-05-15 11:18:56 · 7172 阅读 · 1 评论 -
Android中 view的双缓冲技术
view实现双缓冲技术当要绘制的数据量比较大,绘图时间比较长时,重复绘图会出现闪烁现象,引起闪烁现象的主要原因是视觉反差比较大。使用双缓冲技术可以解决这个问题,Surfaceview默认是使用双缓冲技术的。在Android上实现双缓冲技术的步骤是:创建一个屏幕大小(实际绘图区域)的缓冲区(Bitmap),创建一个画布(Canvas),然后设置画布的bitma原创 2015-05-15 17:30:35 · 2577 阅读 · 0 评论 -
Java位运算在程序设计中的使用:位掩码(BitMask)
在Java中,位运算符有很多,例如与(&)、非(~)、或(|)、异或(^)、移位(>)等。这些运算符在日常编码中很少会用到。在下面的一个例子中,会用到位掩码(BitMask),其中包含大量的位运算。不只是在Java中,其他编写语言中也是可以使用的。例如,在一个系统中,用户一般有查询(Select)、新增(Insert)、修改(Update)、删除(Selete)四种权限,四种权转载 2015-05-14 11:39:33 · 535 阅读 · 0 评论 -
关于Android中的文件读写
1. 分析Java中常用的文件读写的两个类: 1.FileInputStream/FileOutputStream(FileReader/FileWriter)2.RandomFileAccess FileInputSteam和FileOutputStream继承于InputStream和OutputStream,FileReader、FileWriter继承于Reader转载 2015-05-07 16:14:18 · 809 阅读 · 0 评论 -
使用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 · 970 阅读 · 0 评论 -
快速掌握 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 · 565 阅读 · 0 评论 -
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 · 2418 阅读 · 0 评论