自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (8)
  • 收藏
  • 关注

原创 如何区分getApplication()和getApplicationContext()

二者返回结果是相同的区别:getApplication()是用来获取Application实例的,但是该方法只在Activity和Service中才能调用;在一些其他的地方,比如说当我们在BroadcastReceiver中也想获取Application实例,这时就需要使用getApplicationContext()方法getApplicationContext我们知道是一个抽象方法,他的真正实现是在ContextImpl中:@Override public Context getApp..

2020-07-14 18:04:43 793

原创 byte[]数组存储到文件中

首先在清单文件中写入读写权限<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>然后写代码:/** * b...

2020-04-22 16:38:05 2103

原创 Android 之 NFC

NFC,即Near Field Communication,近距离无线通讯技术,是一种短距离的(通常或更短)高频(13.56M Hz)无线通信技术,它提供了一种简单、触控式的解决方案,可以让消费者简单直观地交换信息、访问内容与服务。

2016-03-17 11:32:24 650

原创 java.lang.RuntimeException: Method called after release()

这个问题是照相预览界面,加载帧视图时,Camera预览采集:在surfaceCreated和surfaceDestroyed方法里都需要定义camera.setPreviewCallback(null) ;  camera.stopPreview();  camera.release();  camera = null;如:public void surfaceDe

2015-11-25 16:15:41 436

转载 Android反射机制实现与原理

本文介绍Android反射机制实现与原理,在介绍之前,要和Java进行比较,所以先看下Java中的反射相关知识:一、反射的概念及在Java中的类反射  反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。在计算机科学领域,反射是一类应用,它们能够自描述和自控制。这类应用通过某种机制来实现对自己行为的描述和检测,并能根据自身行为的状态和结果,调整或修改应用所描述行为的

2015-01-27 09:58:17 346

转载 android 获取软键盘的高度

//自动弹出软键盘    edtsearch_title = (EditText) findViewById(R.id.edtsearch_title);  edtsearch_title.setFocusable(true);   edtsearch_title.setFocusableInTouchMode(true);   edtsearch_title.reques

2015-01-07 14:36:04 952

转载 Android软键盘的用法总结

Android软键盘的用法总结  1.软键盘的显示原理    软键盘其实是一个Dialog。InputMethodService为我们的输入法创建了一个Dialog,并且对某些参数进行了设置,使之能够在底部或者全屏显示。当我们点击输入框时,系统会对当前的主窗口进行调整,以便留出相应的空间来显示该Dialog在底部,或者全屏。2.活动主窗口调整    Android定义了一个属性wi

2015-01-07 14:31:47 488

转载 设计模式之工厂设计模式

简单工厂模式虽然简单,但存在一个很严重的问题。当系统中需要引入新产品时,由于静态工厂方法通过所传入参数的不同来创建不同的产品,这必定要修改工厂类的源代码,将违背“开闭原则”,如何实现增加新产品而不影响已有代码?工厂方法模式应运而生,本文将介绍第二种工厂模式——工厂方法模式。 1 日志记录器的设计       Sunny软件公司欲开发一个系统运行日志记录器(Logge

2014-11-04 14:26:41 261

转载 设计模式之简单工厂模式

工厂模式是最常用的一类创建型设计模式,通常我们所说的工厂模式是指工厂方法模式,它也是使用频率最高的工厂模式。本章将要学习的简单工厂模式是工厂方法模式的“小弟”,它不属于GoF 23种设计模式,但在软件开发中应用也较为频繁,通常将它作为学习其他工厂模式的入门。此外,工厂方法模式还有一位“大哥”——抽象工厂模式。这三种工厂模式各具特色,难度也逐个加大,在软件开发中它们都得到了广泛的应用,成为面向对

2014-10-31 17:15:10 314

翻译 MVC已死?是时候用MOVE了

参考资料:MVC is dead, it's time to MOVE on.http://cirw.in/blog/time-to-move-on      作者:Conrad Irwin — June 2012      MVC模式是一个很了不起的主意,它广泛应用于编程实践中。“数据模型(Model)”可以封装与应用程序的业务逻辑相关的数据及对数据的处理方法;“视图层(View

2014-10-30 17:58:32 445

转载 面向对象设计原则之迪米特法则

迪米特法则来自于1987年美国东北大学(Northeastern University)一个名为“Demeter”的研究项目。迪米特法则又称为最少知识原则(LeastKnowledge Principle, LKP),其定义如下:迪米特法则(Law of  Demeter, LoD):一个软件实体应当尽可能少地与其他实体发生相互作用。      如果一个

2014-10-30 16:11:45 564

转载 面向对象设计原则之合成复用原则

合成复用原则又称为组合/聚合复用原则(Composition/Aggregate Reuse Principle, CARP),其定义如下:合成复用原则(Composite Reuse Principle, CRP):尽量使用对象组合,而不是继承来达到复用的目的。      合成复用原则就是在一个新的对象里通过关联关系(包括组合关系和聚合关系)来使用一些已有

2014-10-30 15:11:00 411

转载 面向对象设计原则之接口隔离原则

接口隔离原则定义如下:接口隔离原则(Interface  Segregation Principle, ISP):使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。      根据接口隔离原则,当一个接口太大时,我们需要将它分割成一些更细小的接口,使用该接口的客户端仅需知道与之相关的方法即可。每一个接口应该承担一种相对独立的

2014-10-30 11:35:22 323

转载 面向对象设计原则之开闭原则

开闭原则是面向对象的可复用设计的第一块基石,它是最重要的面向对象设计原则。开闭原则由Bertrand  Meyer于1988年提出,其定义如下:开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。      在开闭原则的定义中,软件实体可以指一个软件模块、

2014-10-30 10:59:42 541

转载 面向对象设计原则之单一职责原则

单一职责原则是最简单的面向对象设计原则,它用于控制类的粒度大小。单一职责原则定义如下:单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。      单一职责原则告诉我们:一个类不能太“累”!在软件系统中,一个类(大到模块,

2014-10-30 10:58:31 406

转载 面向对象设计原则之依赖倒转原则

如果说开闭原则是面向对象设计的目标的话,那么依赖倒转原则就是面向对象设计的主要实现机制之一,它是系统抽象化的具体实现。依赖倒转原则是Robert C. Martin在1996年为“C++Reporter”所写的专栏Engineering Notebook的第三篇,后来加入到他在2002年出版的经典著作“Agile Software Development, Principles, Patter

2014-10-30 10:28:32 702

转载 面向对象设计原则之里氏代换原则

里氏代换原则由2008年图灵奖得主、美国第一位计算机科学女博士Barbara Liskov教授和卡内基·梅隆大学Jeannette Wing教授于1994年提出。其严格表述如下:如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1代换o2时,程序P的行为没有变化,那么类型S是类型T的子类型。这个定义比较拗口且难以理解,因此我们一般使用它的另一个通俗版

2014-10-30 10:22:06 345

原创 android之activity四大启动模式

activity的四种启动模式:standard、singleTop、singleTask、singleInstance

2014-10-28 11:23:11 654

转载 android 设计模式之单例模式

Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”

2014-10-24 17:12:30 406

转载 非递归排序

非递归排序的方法很多,这里主要介绍冒泡排序、插入排序、希尔排序;递归的方法也不少,这里介绍的方法是快速排序、归并排序和堆排序。排序的内容很多,本篇博客主要介绍非递归排序,递归排序的内容主要在下一节内容解决。    (1)冒泡排序    冒泡排序的内容并不复杂。假设有n个数据需要排序,那么我们需要确定n个从大到小的数据,每一次都挑选第n大的数据是多少,并且放大相应的位置。直到所有的数据都排列

2014-09-12 17:47:38 393

转载 合并排序

前面一篇博客提到的快速排序是排序算法中的一种经典算法。和快速排序一样,合并排序是另外一种经常使用的排序算法。那么合并排序算法有什么不同呢?关键之处就体现在这个合并上面。    合并算法的基本步骤如下所示:    1)把0~length-1的数组分成左数组和右数组    2)对左数组和右数组进行迭代排序    3)将左数组和右数组进行合并,那么生成的整个数组就是有序的数据数组

2014-09-11 16:36:03 381

转载 快速排序

快速排序是编程中经常使用到的一种排序方法。可是很多朋友对快速排序有畏难情绪,认为快速排序使用到了递归,是一种非常复杂的程序,其实未必如此。只要我们使用好了方法,就可以自己实现快速排序。    首先,我们复习一下,快速排序的基本步骤是什么:    1、 判断输入参数的合法性    2、把数组的第一个数据作为比较的原点,比该数据小的数据排列在左边,比该数据大的数据排列在右边    3、

2014-09-11 15:42:40 364

转载 十大编程算法

算法一:快速排序算法快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比 较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构 上很有效率地被实现出来。快速排序使用分治法(Divide and conquer

2014-09-10 15:45:21 325

转载 数据结构之AVL树

1. 概述AVL树是最早提出的自平衡二叉树,在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。AVL树得名于它的发明者G.M. Adelson-Velsky和E.M. Landis。AVL树种查找、插入和删除在平均和最坏情况下都是O(log n),增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。本文介绍了AVL树的设计思想和基本操作。2. 基本术语有四

2014-09-04 16:27:27 347

转载 数据结构之并查集

1、  概述并查集(Disjoint set或者Union-find set)是一种树型的数据结构,常用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。2、  基本操作并查集是一种非常简单的数据结构,它主要涉及两个基本操作,分别为:A. 合并两个不相交集合B. 判断两个元素是否属于同一个集合(1)       合并两个不相交集合(Union(x,y))

2014-09-04 16:26:21 275

转载 数据结构之堆

1. 概述堆(也叫优先队列),是一棵完全二叉树,它的特点是父节点的值大于(小于)两个子节点的值(分别称为大顶堆和小顶堆)。它常用于管理算法执行过程中的信息,应用场景包括堆排序,优先队列等。2. 堆的基本操作堆是一棵完全二叉树,高度为O(lg n),其基本操作至多与树的高度成正比。在介绍堆的基本操作之前,先介绍几个基本术语:A:用于表示堆的数组,下标从1开始,一直到nPARENT

2014-09-04 16:23:11 268

转载 数据结构之伸展树

1、 概述二叉查找树(Binary Search Tree,也叫二叉排序树,即Binary Sort Tree)能够支持多种动态集合操作,它可以用来表示有序集合、建立索引等,因而在实际应用中,二叉排序树是一种非常重要的数据结构。从算法复杂度角度考虑,我们知道,作用于二叉查找树上的基本操作(如查找,插入等)的时间复杂度与树的高度成正比。对一个含n个节点的完全二叉树,这些操作的最坏情况运行时间

2014-09-04 11:19:27 364

转载 数据结构之线段树

1、概述线段树,也叫区间树,是一个完全二叉树,它在各个节点保存一条线段(即“子数组”),因而常用于解决数列维护问题,它基本能保证每个操作的复杂度为O(lgN)。2、线段树基本操作线段树的基本操作主要包括构造线段树,区间查询和区间修改。(1)    线段树构造首先介绍构造线段树的方法:让根节点表示区间[0,N-1],即所有N个数所组成的一个区间,然后,把区间分成两半,分别由左右子

2014-09-04 10:30:59 234

转载 Android中Path类的lineTo方法和quadTo方法画线的区别

当我们需要在屏幕上形成画线时,Path类的应用是必不可少的,而Path类的lineTo和quadTo方法实现的绘制线路形式也是不一样的,下面就以代码的实现来直观的探究这两个方法的功能实现区别;   1. Path--->quadTo(float x1, float y1, float x2, float y2):     该方法的实现是当我们不仅仅是画一条线甚至是画弧线时会形成平滑的曲线,

2014-09-02 18:07:08 343

转载 android 绘图时抗锯齿方法两种

其一:paint.setAntiAlias(ture);paint.setBitmapFilter(true)

2014-09-02 16:31:29 2824

转载 Android Scroller类的解析与用法

Scroller这个类理解起来有一定的困难,刚开始接触Scroller类的程序员可能无法理解Scroller和View系统是怎么样联系起来的。我经过自己的学习和实践,对Scroller的用法和工作原理有了一定的理解,在这里和大家分享一下,希望大家多多指教。      首先从源码开始分析:        View.java [java] view plaincopy

2014-09-02 14:40:41 388

转载 哈弗曼编码

/*------------------------------------------------------------------------- * Name:   哈夫曼编码源代码。 * Date:   2011.04.16 * Author: Jeffrey Hill * 在 Win-TC 下测试通过 * 实现过程:着先通过 HuffmanTree() 函数构造哈夫曼

2014-08-22 14:30:16 380

转载 数据结构之树

数据结构中为了存储和查找的方便,用各种树结构来存储文件,本章就浅谈一下各种树的表示方法、特点及各自的用途,本章设计的树结构包括:二叉查找树(二叉排序树)、平衡二叉树(AVL树)、红黑树、B-树、B+树、字典树(trie树)、后缀树、广义后缀树。1、二叉查找树(二叉排序树)  (图a)二叉查找树是一种动态查找表(图a),具有这些性质:                           

2014-08-22 11:36:41 316

转载 数据结构之栈和队列

栈和队列是两种特殊的线性表,它们的逻辑结构和线性表相同,只是其运算规则较线性表有更多的限制,故又称它们为运算受限的线性表。栈和队列被广泛应用于各种程序设计中。栈的定义及基本运算1、栈的定义    栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。  (1)通常称插入、删除的这一端为栈顶(Top),另一端称为栈底(Bottom)。  (2)当表中没有元

2014-08-22 11:21:14 354

转载 链表

什么是链表简单的说,链表就是由多个结点离散分配,彼此通过指针相连,每个结点只有一个前驱结点和后继结点。首节点无前驱结点,为结点无后继结点的一种存储结构。链表的结构头结点:链表的第一个有效结点前面的结点,头结点并不存放有效数据,也就是数据域为空,加头结点的主要目的是为了方便链表的操作。首节点:链表的第一个有效结点,结点包含数据域和指针域。尾结点:尾结点的指针域

2014-08-14 15:42:13 317

原创 Android 自定义属性TypedArray

有时候android传统的页面布局不足以满足我们的需求,常常需要自己定义view,通常继承View,然后重写构造方法以及onDraw等函数,再具体实现自己定义的复杂view。我们知道在给控件赋属性时,通常使用的是android系统自带的属性,比如 android:layout_height="wrap_content",除此之外,我们亦可以自己定义属性,这样在使用的时候我们就可以使用形如 myap

2014-08-14 15:17:25 416

转载 Android中Parcelable接口用法

1. Parcelable接口Interface for classes whose instances can be written to and restored from a Parcel。 Classes implementing the Parcelable interface must also have a static field called CREATOR, which i

2014-08-14 10:27:54 266

原创 Android Vibrator 的用法

1、通过系统服务获得手机震动服务,Vibrator vibrator = (Vibrator)getSystemService(VIBRATOR_SERVICE);   B、得到震动服务后检测vibrator是否存在:vibrator.hasVibrator(); 检测当前硬件是否有vibrator,如果有返回true,如果没有返回false。 C、根据实际需要进行适当的调用, vib

2014-08-13 11:31:18 609

原创 Android Toast的几种形式

1,最常用的toast:

2014-08-07 17:18:03 474

转载 Android GestureDetector手势识别类的几种情况

转载至为了加强鼠标响应事件,Android提供了GestureDetector手势识别类。通过GestureDetector.OnGestureListener来获取当前被触发的操作手势(Single Tap Up、Show Press、Long Press、Scroll、Down、Fling),具体包括以下几种:boolean  onDoubleTap(MotionEvent

2014-08-07 17:08:56 515

微信小程序压缩库zlib.js

微信小程序的压缩库--zlib.js,用法跟JS库的用法相同,我是根据JS库修改过来的,亲自测试可用

2018-07-17

Audio 语音聊天

可进行语音聊天的全部代码,整理之后的,满足大部分人的需求

2014-10-27

slidingMenu

slidingMenu

2014-09-03

BroadcastDemo

关于广播的一个demo,让你学会常用的几种广播demo

2014-08-21

androd自定义有进度的圆形进度条

自定义的圆形进度条,可显示进度,可学习自定义控件

2014-08-13

自定义嵌套ListView

自定义的嵌套ListView,实现一个布局内部显示嵌套多个ListView

2014-08-13

PluginAplication

PluginAplicationPlugin(Plug-in,addin,add-in,addon或add-on)是一种计算机应用程序,它和主应用程序(host application)互相交互,以提供特定的功能。应用程序支持Plugin有许多原因,一些主要原因包括:使得第三方开发者有能力扩展应用程序,以提供无法先期预料的特色;减小应用程序的大小;由于软件版权之间的不兼容性将源代码和应用程序分享。

2014-07-03

空空如也

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

TA关注的人

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