自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (7)
  • 收藏
  • 关注

原创 Android桌面悬浮窗口举例

概述Android项目开发时,有时候需要开发一些悬浮在桌面上的视图。比如桌面小精灵,各种音乐播放器的悬浮播放控制栏等等。本文就借助一个小的demo,用代码的方式大概进行介绍。 原理开发桌面悬浮窗口一般遵循两个大的原则。 1.最根本的原则是采用WindowManager类,WindowManager有addView(View view, ViewGroup.LayoutParams ...

2018-02-28 17:01:25 2414

原创 Android判断当前界面是否为在桌面

概述Android开发中有时候会涉及到判断当前界面是否为桌面的情况,比如说开发桌面悬浮控件的时候或者手机桌面小精灵的时候。原理原理很简单,首先获取属于桌面应用的所有应用的包名,放在一个数组里面。 /** * 获得属于桌面的应用的应用包名称 * 返回包含所有包名的字符串列表数组 * @return */ private Li...

2018-02-28 16:44:20 3129 1

原创 Android键盘事件

本文主要会简单介绍 下Android项目开发中有关系统软键盘的事情,主要包括强制开启键盘、强制收起键盘,以及如何在键盘开启和收起时进行事件监听。话不多说,直接进入主题。强制开启键盘 /** * 强制开启软键盘 * 这里的mEditText就是键盘目前获得焦点的输入框 */ private void showSoftInput() { ...

2018-02-24 17:22:38 577

原创 EditText焦点监听

Android项目开发中有时需要监听EditText上焦点的变化(焦点的获取和释放)。下面就简要介绍一下,原理很简单,希望给初学的朋友带来帮助。 其实很简单,跟监听点击事件一样。这里我们有个关键类View.OnFocusChangeListener接口,绑定这个接口就OK了。 mEditText = (EditText) findViewById(R.id.edt_focus)...

2018-02-24 17:04:40 2392

原创 EventBus线程模式

POSTING(默认的线程模式):该模式下,该事件在哪个线程发布出来的,事件处理函数就会在这个线程中运行,即:事件的发布和是事件的接收处理在同一个线程。 注意:1)在线程模型为POSTING的事件处理函数中尽量避免执行耗时操作,因为它会阻塞事件的传递,甚至有可能会引起ANR。 2)如果是在事件的接收时处理UI操作的话,这里可要注意了。如果是事件发布在子线程中的话,会导致UI不能更新。设...

2018-02-13 17:12:42 418

原创 Java设计模式 — 适配器模式

概述适配器(Adapter)模式,是讲一个类的接口转换成客户希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的一些类可以一起工作。 Java程序开发过程中,我们有时候会遇到数据和行为都正确,但是接口不符的情况。针对这种情况,我们可以采用适配器模式的思想。先使不可控的类与某一个接口进行适配,然后再去适配某个目标类。听起来有些晦涩,举个例子:我们在电脑连接电视的时候,有时候接口对...

2018-02-13 14:49:09 187

转载 Bugly Android SDK 使用指南

库文件导入Bugly支持自动集成和手动集成两种方式,如果您使用Gradle编译Apk,我们强烈推荐您使用自动接入方式配置库文件。自动集成(推荐) Bugly支持JCenter仓库和Maven Central仓库。为了实现更加灵活的配置,Bugly SDK(2.1.5及以上版本)和NDK(SO库)目前已经分开成两个独立的仓库:SDK:com.tencent.bugly:crashrep...

2018-02-11 16:39:09 323

原创 MeasureSpec介绍

MeasureSpec作为View中的一个很关键的内部静态类,在View的绘制过程中起到了很重要的作用。MeasureSpec参与了View的measure过程,很大程度上决定了View的尺寸规格。 在测量过程中,Android系统会将View的布局参数(LayoutParams)根据父容器所施加的规则,转化为MeasureSpec。然后,再根据这个measureSpec来测量View的宽度/高...

2018-02-08 14:48:11 234

原创 ViewRoot和DecorView简述

Android系统中,ViewRoot对应于ViewRootImpl类,它是连接WindowManager和DecorView的纽带,View的三大流程(measure、layout、draw)都是通过ViewRoot来完成的。 在Activity对象被创建完毕后,会将DecorView添加到Window中。同时,会创建ViewRootImpl对象,并将ViewRootImpl对象和DecorV...

2018-02-08 11:31:30 871

原创 Java设计模式—原型模式

概述原型模式(Prototype),是指用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。其实质就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。UMLClientPro:让一个原型去克隆自身,创建一个新的对象;ProtoType:原型类 ,声明一个克隆自身的接口;ConcretePrototype:具体的原型类,负责实现具体的克隆操作

2018-02-07 16:38:51 203

原创 MotionEvent之getRawX/getRawY与getX/getY

android项目开发中,经常会编写自定义控件或者判断用户手势操作,此时需要使用MotionEvent中的getRawX()/getRawY()与getX()/getY()取得触摸点在X轴与Y轴上的距离,这四个方法都返回一个float类型的参数,单位为像素(Pixel)。 这四个参数的具体含义是:getRawX():触摸点相对于屏幕的横坐标 getRawY():触摸点相对于屏幕的纵坐标...

2018-02-07 09:34:57 513

原创 Java设计模式——观察者模式

概述观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察对象,使他们能够自动更新自己。UML Subject: 把所有的观察对象的引用都保存在一个集合里面,每一个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加、删除和清空观察者对象。ConcreteSubject:具体主题,将有关状态存入聚义观察

2018-02-06 19:44:18 172

原创 Java设计模式——建造者模式

概述建造者(Builder)模式,又称为生成器模式。它是将一个复杂的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。当采用了建造者模式,用户就只需要指定需要建造的类型就可以得到想要的最终结果,至于具体的构建过程和构建细节不需要过多知晓。UML Director:指挥者,主要负责调度Builder接口对象,构建成型的产品。 Builder:抽象接口,封装了Product

2018-02-06 17:15:57 155

原创 Java设计模式——外观设计模式

概述外观设计模式(Facade)就是为各个子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。UML 外观设计模式中的角色 Client:客户端类,负责功能的具体使用。即类和方法的使用者 Facade:外观类,知道哪些子系统类负责处理请求,将客户端的请求代理分配给对应的子系统。 Subsystem Classes:子系统类的集

2018-02-06 16:32:08 255

原创 迪米特法则

概述迪米特法则又称为最少知识法则,即:如果两个类不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三方来转发这个调用。 迪米特法则特别强调的是类之间的松耦合,即在类的结构设计上,每一个类都应该尽量降低成员的访问权限。我们在进行程序设计时,类之间的耦合程度越小,越是有利于复用,一个出在弱耦合的类被修改的时候,对其他类造成的影响就

2018-02-06 15:30:59 366

原创 Java浅拷贝与深拷贝

浅拷贝浅拷贝是按位拷贝对象,在进行浅拷贝时会创建一个新对象。如果被拷贝对象的属性是基本类型,那么拷贝的就是基本类型的值;如果属性是对象(内存地址/引用类型),拷贝的就是对象 。属性是对象时,其中一个对象改变了这个地址,就会影响到另一个对象。 我们先写一个被拷贝对象。/** * 对象(内存地址) * 作为一个对象的属性 */public class BaseInfo {

2018-02-06 10:26:50 218

原创 Java设计模式——工厂方法设计模式

概述之前简单介绍了简单工厂设计模式,需要的童靴可以点击这里查看详情。 本文主要介绍的是工厂方法设计模式。那么,工厂方法设计模式跟简单工厂设计模式有什么不同的呢。先看一下UML图 简单工厂的区别简单工厂中,工厂类就一个具体的实现类,它封装了所有的必要逻辑。使用中,可以根据客户端选择的条件动态地实例化相关类。而在工厂方法设计模式中,创建了一个基类的抽象工厂,然后又创建了子类的工厂...

2018-02-05 15:58:14 250

原创 Java设计模式——代理模式

概述代理模式(Proxy),为其他对象提供一种代理,以控制对这个对象的访问,是一种结构类型的设计模式。在具体的使用过程中,客户端必须通过代理类才能调用幕后的被代理类的方法,完成特定的交互目的。 代理模式的UML图大致如下 角色代理模式中含有的角色为 1)抽象对象(subject) 定义了目标对象(real subject)及代理类对象(proxy)的共同接口,这样在任何使用

2018-02-05 15:09:52 294

原创 RxJava基础知识点总结

代码实现场景1:被观察者、观察者和订阅分开写 /** * 先创建一个上游Observable * 角色:被观察者 */ Observable<String> observable = Observable.create(new ObservableOnSubscribe<String&g...

2018-02-02 15:43:55 265

原创 AsyncTask使用总结

概述AsyncTask是由Android封装的一个轻量级异步抽象类,可以在线程池中执行后台任务,然后把执行的进度和最终结果传递给主线程并在主线程中更新UI。AsynTask的源码如下:public abstract class AsyncTask<Params, Progress, Result> { private static final String LOG_...

2018-02-01 20:28:09 401

原创 java接口回调

java中的接口回调比较简单,但是很重要,也很实用。它经常运用于各种adapter中,可以监听adapter中的点击事件,也运用于很多其他的需要监听某些事件的场合。 稍微举一个小例子,展示一下接口回调在adapter中的应用。 1)先定义一个接口public interface OnItemClickListener { void onItemClick(int position,

2018-02-01 19:10:51 468

原创 Java设计模式——装饰者模式

概述装饰者模式(Decorator),在不必改变原类文件和使用继承的情况下,动态地给一个对象添加一些额外的职责。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 装饰模式的结构组成如下所示: 角色组成Component:基本组件类(抽象类或者接口),可以给要装饰的对象动态添加职责。 ConcreteComponent:具体的组件类,它继承了或实现了Component基

2018-02-01 17:06:58 494

原创 Java设计模式——策略模式

概述策略模式(Strategy)定义了一个算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化不会影响到使用算法的客户。 策略模式的结构组成如下所示: 角色组成策略模式涵盖了3个角色,分别是上下文环境、基本的策略基类和具体的策略执行类。 1)上下文环境(Context)角色:持有一个Strategy的引用。 2)抽象策略(Strategy)角色:这是一个抽象角

2018-02-01 16:25:47 211

Android开发中的Notification应用

本实例描述的Android开发中的Notification通知控件的应用,包括通知的创建、属性设置、跳转方法以及删除等。希望能给学习Notification通知的朋友带来帮助。

2015-11-20

Fragment通信及参数传递

本实例介绍了通过接口调用的方式进行Fragment之间的通信和参数传递,关键部分做了注释。希望给学习Android移动开发的朋友带来帮助。

2015-11-20

标题带图标和文字的TabHost

本实例是一个简单的TabHost控件应用,其中标题是同时显示图标和文字的。希望能给初学者带来帮助。

2015-11-19

自定义ListView,并仿QQ左滑效果

本实例是自定义的ListView,每个listitem中的控件都可以添加监听事件。并且,仿照QQ左滑效果。希望能对初学者提供帮助。

2015-11-19

自定义View视图

本实例描述的是自定义的View类视图,创建了一个可以手指点击,绘制一个在海底自由遨游的小鱼。注释也比较清楚。希望能给Android初学者带来帮助。

2015-11-18

自定义AlertDialog

自定义一个AlertDialog,在此AlertDialog加入了一个简单的布局文件。希望对初学者有所帮助。

2015-11-18

左右循环滑动的viewpager

本代码是循环滑动的ViewPager的简单应用。程序很简单,并且必要的地方都给与注释,比较适合初学者掌握ViewPager的用法。实例中还运用到线程的简单运用,真心希望对参考者有些帮助。

2014-09-24

空空如也

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

TA关注的人

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