自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (5)
  • 收藏
  • 关注

原创 Android中如何自己创造一个Cursor及MatrixCursor源码分析

我们有时在处理数据时可能用Cursor比较方便。但我们如何自己创造一个Cursor呢?这时我们可以用Android为我们提供的MatrixCursor类,自己创造一个Cursor。下面通过一个事例来分析,如何创造一个Cursor作为SimpleCursorAdapter的数据来源。1、Activity布局 android:textSize="24sp" androi

2016-04-30 23:24:47 3662

原创 Android之观察者模式源码分析(DataSetObserver)

在阅读本片文章之前希望你先看下上篇的博客Java设计模式之观察者模式1、分析理解Android中我们常用的观察者是:DataSetObserver、ContentObserver ContentObserver : 可能我们在学ContentProvider时接触过ContentObserver;当我们添加、删除、更新数据时,通过它来为我们共享的数据添加监听器。 DataSetObserver:

2016-04-30 21:08:27 603

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

1、定义: 定义对象间的一种一(目标)对多(观察者)的依赖关系;当一个目标的状态发生改变时所有依赖于它的观察者都得到通知并被自动更新。2、角色:● 抽象主题(Subject)角色:抽象主题角色把所有对观察者对象的引用保存在一个聚集(比如ArrayList对象)里,每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加和删除观察者对象,抽象主题角色又叫做抽象被观察者(Observ

2016-04-30 11:05:38 334

转载 Android应用Loaders全面详解及源码浅析

本篇博客来自于工匠若水,非常感谢写了这么精彩的文章。1、背景在Android中任何耗时的操作都不能放在UI主线程中,所以耗时的操作都需要使用异步实现。同样的,在ContentProvider中也可能存在耗时操作,这时也该使用异步操作,而3.0之后最推荐的异步操作就是Loader。它可以方便我们在Activity和Fragment中异步加载数据,而不是用线程或AsyncTask,他的优点如下:提供异步

2016-04-26 22:51:44 677

原创 通过 LoaderManager + CursorLoader加载通讯录中所有人

通过上面4篇LoaderManager的学习,我们可能已经熟悉了LoaderManager。可能第四篇学习时,我们会感觉好有点小吃力。 所以我们现在从最基础的Demo练习。先不自定义Loader,先实现一个简单的小Demo。通过Fragment加载通讯录中所有人因为好长时间没用过Fragment了,今天重新练练Fragment。1、自定义Fragment//CursorLoaderFragment

2016-04-26 22:04:18 568

转载 LoaderManager使用详解(四)---实例:AppListLoader

实例:AppListLoader这篇文章将是我的第四篇,也就是最后一篇该系列的文章。请在评论里面告诉我他们是否有用。前面几篇文章的链接如下:一:Loaders之前世界 二:了解LoaderManager 三:实现Loaders 四:实例:AppListLoader应大众的要求,我已经写了一个示例应用演示如何正确的实现一个自定义Loader。应用名称为:AppListLoader,它是一个演示应

2016-04-24 19:06:48 359

转载 LoaderManager使用详解(三)---实现Loaders

这篇文字将介绍Loader类,并且介绍自定义Loader的实现。这是本系列的第三篇文章。一:Loaders之前世界 二:了解LoaderManager 三:实现Loaders 四:实例:AppListLoader重中之重,如果你还没有读过前面两篇文章,我建议你在深入之前先读一读那两篇文章。先简短的总结一下这篇博客覆盖了什么内容。Loader之前的世界(第一篇)描述了Android3.0之前的数

2016-04-24 18:54:09 444

转载 LoaderManager使用详解(二)---了解LoaderManager

了解LoaderManager这篇文章将介绍LoaderManager类,这是该系列的第二篇文章。 一:Loaders之前世界 二:了解LoaderManager 三:实现Loaders 四:实例:AppListLoader注意: 要了解LoaderManager这部分知识,要求对Loaders如何工作有基本的了解。Loaders的实现将在下一遍文章中讲解。现在你只需要将Loaders看成

2016-04-24 18:39:54 273

转载 LoaderManager使用详解(一)---没有Loader之前的世界

来源: http://www.androiddesignpatterns.com/2012/07/loaders-and-loadermanager-background.html 感谢作者Alex Lockwood的努力,让我们看到如此精彩的文章。1、第一部分 没有Loader之前的世界这一部分将对Loaders和LoaderManager做一个简短的介绍。第一节将在Android3.0之前如

2016-04-24 18:16:12 387

原创 Java中StringTokenizer用法

在Java中除了用split()实现字符串切割外,还可用StringTokenizer类。StringTokenizer API1、构造函数public StringTokenizer(String str) { this(str, " \t\n\r\f", false); }构造一个用来解析str的StringTokenizer对象。java默认的分隔符是“空格”、“制表符

2016-04-23 17:42:59 1523

原创 MediaPlayer+MediaPlayerController+MediaPlayer.OnBufferingUpdateListener实现音乐播放器

在Android开发中渐渐发现每一个类只负责自己的模块,类之间的耦合性很低。每一个类只负责自己的模块,但不同的类进行组合就可以创建一个功能强大的应用;下面通过一个音乐播放器来体验下这个思想: 我们之前可能学过如何通过MediaPlayer来播放res/raw、assets中的原声文件、网络中的文件等等。在这里不做介绍,感兴趣的自己查资料吧! 但在以前我们更多的使用Button+MediaPlay

2016-04-21 20:58:22 6253

原创 拍摄照片和视频

在Android多媒体开发中我们最常用的就是照片、视频的拍摄。其实在开发中我们不会自己去写一个照相机、摄像机程序,而是去调用系统中已经存在的照相、摄影程序;拍摄照片1:布局<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.co

2016-04-17 13:06:07 607

原创 自定义监控器

我们在Android编程中经常会看到为控件设置监听器。今天在工作中发现有好多自定义的监听器,便写了一遍博客,让我们来讲一讲如何自定义一个监听器;首先让我们先分析一下如果自定义一个监听器需要哪些条件: (1)定义一个接口(监听器) (2)在什么条件下调用我们的接口(更多的情况下,我们是重写父类的方法,在指定的条件下来调用我们的接口。有时我们也可以设置一个定时器在指定的时间间隔调用)实例一(通过重写

2016-04-15 22:10:00 316

原创 查询网络连接状态

应用程序有时需要检查网络连接状态,有三种方法:1:通过ConnectivityManager来监控设备的网络连接状态和网络连接类型; 2:通过注册广播BreadcastReceiver来检测网络连接的变化; 2:通过PhoneStateListener来监控设备的网络的连接状态和网络连接类型;ConnectivityManager1:需要加权限:<uses-permission android:

2016-04-12 21:36:54 2647

转载 Android完全退出应用程序

在Android开发中如果想退出应用程序,一般都是调用finish()、System.exit(0)、android.os.Process.killProcess(android.os.Process.myPid())等方法实现退出程序功能,可是在实际开发中,并不能达到完全退出应用程序的效果。这是因为调用finish()、System.exit(0)、android.os.Process.killP

2016-04-10 21:15:41 411

原创 Android长时间及连续两次按BackUp按键退出程序

今天自己学习了Android按BackUp按键退出程序的小Demo,发现网上有好多实例,但感觉他们的能解决问题,但可能会存在内存泄漏的问题,今天就自己总结了一下!分析问题: 1>重写Activity中的onKeyDown()方法 2>定时器其中(Handler、Timer、ScheduledExecutorService)一个或通过时间差 3>一个退出程序的标志由于我们可能在Activity中

2016-04-10 19:47:43 445

原创 Service中onStartCommand()理解

有时候我们会很诧异一个现象: 当我们在Activity中通过startService()开启一个服务时,我们之后直接System.exit(0)或android.os.Process.killProcess(android.os.Process.myPid());结束进程;但启动的Service依然可以在后台重新启动;下面Demo演示:1>Activity:public class MainAct

2016-04-10 17:30:21 16154 6

原创 Android View.setOnclickListener(),View.onTouchEvent(),View.setOnTouchListener()关系源码分析

同样是在上一篇文章中代码,我们给Acitvity中的mView添加一个监听器:myView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Log.v(MyLinearLayout.

2016-04-09 18:57:15 6709

原创 Android中的dispatchTouchEvent()、onInterceptTouchEvent()、onTouchEvent()和setOnTouchListener()

1、事件理解:1> dispatchTouchEvent() : 处理事件分发return true,表示事件被分发; 2> onInterceptTouchEvent() :事件拦截(改变事件的传递方向),return false表示传递给子控件的onTouchEvent(),return true表示传递给当前控件的onTouchEvent(); 3> onTouchEvent():retu

2016-04-09 15:39:13 1002

原创 Android蓝牙通信

蓝牙有两部分组成:1、搜索和绑定:不区分客户端和服务器端,通过BluetoothAdapter.startDistovery()来搜索周围可用的蓝牙设备。 2、连接和数据传输;区分客户端和服务器端;当我们进行数据传输时,总要有一端是客户端负责发送数据,一端服务器端负责接收数据(蓝牙进行连接有两种方式,下面将进行详细介绍);Android中的蓝牙通信有5步:1:获取本地蓝牙适配器BluetoothA

2016-04-04 21:37:01 394

音视频开发Demo

音视频开发的Demo

2016-10-16

AudioRecord/AudioTractorDemo

AudioRecord/AudioTractor实现音频的录制和播放Demo

2016-10-12

DecodeVideoFileDemo

通过MediaExtractor抽取视频文件,然后通过MediaCodec解码,在SurfaceView上播放;

2016-10-11

MediaExtractor抽取视频->MediaMuxer产生视频文件

通过MediaExtractor抽取视频,然后再通过MediaMuxer产生视频文件

2016-10-09

TexttureView实现Camera预览

TexttureView实现Camera预览

2016-09-15

空空如也

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

TA关注的人

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