- 博客(84)
- 资源 (1)
- 收藏
- 关注
原创 振动器 Vibrator
Vibrator 的使用比较简单,它只用3个简单的方法:virbate(long milliseconds) :控制手机震动的 milliseconds毫秒.virbate(long[] pattern,int repeat) : 指定手机以 pattern指定的模式启动.例如指定pattern 为new int[400,800,1200,1600],就是指定在 400ms,800ms, 120
2016-06-30 21:13:35 420
原创 音频管理器 AudioManager
Android中提供的 AudioManager类 可以管理系统音量,或者让系统静音, 程序一样要调用getSystemService()方法.来获取系统的音频管理器. 在获取了 AudioManager对象之后 就可以调用如下方法: adjustStreamVolume(int StreamType,int direction,int flags): 调整手机指定类型的声音.其中第一个参数st
2016-06-30 20:19:58 307
原创 发送短信之分割短信 SMSManager
package com.test.smsmanagerdemo;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.telephony.SmsManager;import android.view.View;import android.widget.Button;i
2016-06-30 16:29:06 578
原创 短信管理器(SmsManager)
SmsManager 是Android提供的一个非常常见的服务,SMSManager,提供了系列的sendXxxMessage()方法 用于发送短信,不过实际应用来看,短信通常都是普通的文本内容,也就是调用 sendTextMessage()方法进行发送即可.package com.test.smsmanagerdemo;import android.app.PendingIntent;impor
2016-06-30 16:05:33 4029 1
原创 黑名单来电自动挂断
该程序也是监听TelephonyManager的通话状态来实现该功能,当系统检测到有电话呼入时,立刻判断该号码是否在黑名单中,如果该号码在黑名单中立即挂断该号码即可. 遗憾的是,Android没有对外公开挂断电话的API,如果需要挂断电话,必须使用 AIDL与电话管理Service进行通信,并调用服务中的API实现结束通话. 为了调用远程AIDLService,开发者需要讲Android源
2016-06-30 15:27:00 1474
原创 监听手机来电
package com.test.telephony;import android.content.Context;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.telephony.PhoneStateListener;import android.telepho
2016-06-30 12:39:06 709
原创 TelephonyManger 电话管理器
TelephonyManger 是一个管理手机通话状态, 电话网络信息的服务类.该类 提供了大量的getXxx()方法来获取电话网络的相关信息. 获取 TelephonyManger 很简单,只要调用如下代码即可: TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);packag
2016-06-30 09:27:42 367
原创 跨进程调用Service(AIDL Service)
在Android系统中,各应用程序都运行在自己的进程中,进程之间一般无法直接进行数据交换.为了实现这种跨进程通信(inter process communication,简称 IPC),Android提供了 AIDL Service.Android中需要AIDL (Android Interface Definition Language)来定义远程接口. AIDL语法和java接口很相似,但存在
2016-06-29 21:40:44 345
原创 IntentService的使用
IntentService 是Service的子类,因此它不是普通的Service,它比普通的service增加了额外的功能. service 本身存在2个问题:Service不会专门启动一条单独的进程,Service与它所在的应用位于同一进程中.Service也不是专门一条新的线程,因此不应该在Service中直接处理耗时的任务.开发者如果需要在Service中处理耗时操作,建议在serv
2016-06-29 15:18:57 308
原创 Service生命周期
随着应用程序启动 Service方式的不同,Service生命周期也略有差异. 如果应用程序通过 startService( )方法来启动service,service的生命周期如下图.左边所示. 如果应用程序通过 bindService( )方法来启动service,service的生命周期如下图.右边所示.服务生命周期。左边的图显示了生命周期服务时创建startservice()和右边的图显
2016-06-29 12:33:42 415
原创 绑定本地service并与之通信
如果Service和访问者之间需要进行调用或者数据交换,则应该则应该使用bindService()和unbindService()方法,启动.关闭service. Context 的 boolean bindService (Intent service, ServiceConnection conn, int flags) :该方法的3个参数解释如下: service: 该参数通过Intent
2016-06-29 00:10:48 421
原创 <Service> 简介
Service生命周期方法,如下所示:IBinder onBind(Intent intent) :该方法是Service子类必须实现的的方法.该方法返回一个 IBinder 对象,应用程序可通过该对象与Service组件通信.2.onCreate() :当Service 第一次创建的时候立即调用该方法.onDestroy():当Service 关闭之前回调该方法.onStartComma
2016-06-28 21:23:47 358
原创 ContentObserver监听发送的短信
package com.test.contentobserver;import android.database.ContentObserver;import android.database.Cursor;import android.net.Uri;import android.os.Bundle;import android.os.Handler;import android.sup
2016-06-28 19:43:25 607
原创 使用ContentProvider管理多媒体内容
package com.test.mediacontentprovider;import android.app.AlertDialog;import android.content.ContentValues;import android.database.Cursor;import android.graphics.Bitmap;import android.graphics.Bitma
2016-06-28 18:22:49 369
原创 使用ContentProvider 管理联系人
Android 系统提供了Contacts应用程序来管理联系人,而且 Android系统还为联系人管理提供了ContentProvider ,这就允许其他应用程序以ContentResolver来管理联系人数据.Android系统对联系人管理ContentProvider 的几个Uri如下:ContactsContract.Contacts.CONTENT_URI :管理联系人的Uri.
2016-06-28 16:47:20 976
原创 ContentProvider 开发之简单学习
package com.test.contentprovider;import android.content.ContentProvider;import android.content.ContentValues;import android.database.Cursor;import android.net.Uri;import android.util.Log;/** * MyC
2016-06-28 10:17:24 271
原创 ContentProvider 开发之简单学习
package com.test.contentprovider;import android.content.ContentProvider;import android.content.ContentValues;import android.database.Cursor;import android.net.Uri;import android.util.Log;/** * MyC
2016-06-28 10:17:09 215
原创 自动朗读(TTS)
使用TextToSpeech 的步骤如下: 创建 TextToSpeech 对象,创建传入时的 TextToSpeech.OnInitListener() 监听器监听创建是否成功.设置 TextToSpeech 所使用的语言,国家选项,通过返回值判断TTS是否支持该语言, 国家选项.调用 speak() 或者 synthesizeToFile()方法.关闭 TTS,释放资源.package
2016-06-28 09:07:34 3303
原创 Gesture 通过手势实现翻书效果
package com.test.gesturetest;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.GestureDetector;import android.view.MotionEvent;import android.view.View;i
2016-06-27 22:54:05 737
原创 <GestureDetector>通过手势缩放图片
package com.test.gesturetest;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Matrix;import android.graphics.drawable.BitmapDrawable;import android.os.Bu
2016-06-27 22:50:20 1054
原创 SQLiteOpenHelper 类
SQLiteOpenHelper 是Android提供的一个管理数据库的工具类,可以用于管理数据库创建和版本更新.一般的用法是创建 SQLiteOpenHelper 的子类,并扩展它的onCreate(SQLiteDatabase db)方法和 onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)方法. 常用方法如下: getR
2016-06-27 17:31:23 523
原创 文章标题
下面是利用Java的File类开发一个SD卡文件浏览器,该程序直接使用/mnt/sdcard来访问系统的sd卡目录,然后通过listFile() 方法来获取指定目录下的全部文件和文件夹.package com.test.sdfileexplorer;import android.app.Activity;import android.os.Bundle;import android.view.V
2016-06-27 14:03:56 184
原创 读写sd卡的文件
为了更好的存,取应用中的大文件数据,应用程序需要读,写,sd卡上的文件.sd卡大大的扩充手机的存储能力. 读, 写sd卡上的文件 请安如下步骤,进行.调用Environment的 getExternalStorageState()方法 判断手机上是否插入了sd卡,并且应用程序具有读写sd卡的权限.代码提示如下: if (Environment.getExternalStorageState()
2016-06-27 09:56:39 2169
原创 Android中 File存储
Context 提供了两个方法来打开本地应用程序的数据文件夹里的文件I/O流.FileInputStream openFileInput (String name): 打开应用程序中的数据文件夹下的name文件对应的输入流.FileOutputStream openFileOutput (String name, int mode) : 打开应用程序中的数据文件夹下的name文件对应的输出流.
2016-06-27 08:29:42 301
原创 SharedPreferences简单学习之统计app使用次数
package com.test.sharedpreferences;import android.content.SharedPreferences;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.T
2016-06-26 22:08:39 1326
原创 SharedPreferences的学习
SharedPreferences接口 是一个轻量级的存储类,主要存储一些应用程序的配置参数,例如 用户名,密码,自定义参数的设置.它存储的数据是以 key/value键值对的形式保持在xml文件中.该文件位于data/data/(packageName)/shared_perfs文件夹中.需要注意的是 SharedPreferences中的values值只能存储float,int,long,boo
2016-06-26 21:51:02 307
原创 SurfaceView开发示波器<略>
package com.test.tweenanimation;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Rect;import android.os.Bundle;import android.supp
2016-06-26 19:51:22 380
原创 补间动画和逐帧动画结合之蝴蝶飞舞
package com.test.tweenanimation;import android.graphics.drawable.AnimationDrawable;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android
2016-06-26 14:47:56 2995 1
原创 Tween(补间动画)
Android使用Animation代表抽象的动画类.它包括如下几个子类:AlphaAnimation: 该动画需要指定动画开始时的透明度和结束时的透明度,和动画持续时间.其中透明度是 从0 到 1 变化.ScaleAnimation: 大小缩放动画. 创建该动画时需要指定动画开始时的缩放比(以x轴,y轴的缩放参数来表示) 结束的时动画缩放比(以x轴,y轴的缩放参数来表示) ,并指定动画持续时间
2016-06-26 14:45:33 431
原创 AnimationDrawable 帧动画 爆炸特效
该程序只是简单的检测到触摸屏幕事件,当用户触屏时,程序将会在触摸到”爆炸”.package com.test.frameanimation;import android.app.Activity;import android.content.Context;import android.graphics.Canvas;import android.graphics.drawable.Anima
2016-06-26 10:01:44 1095
原创 AnimationDrawable和逐帧动画
获取 AnimationDrawable对象之后,接下来就可用把 AnimationDrawable显示出来,—–习惯上把AnimationDrawable设为ImageView的背景即可. 需要注意的是 AnimationDrawable代表的动画默认是不播放的.必须在程序中启动动画播放才可以.AnimationDrawable 提供了两个方法() : 开始停止动画.start( ): 开始播
2016-06-25 23:52:03 415
原创 使用 Shader 填充颜色
Android 不仅可以使用颜色填充图形,还可以使用shader对象指定的渲染效果来填充图形. Shader 本身是一个抽象类.提供了如下实现类:BitmapShader, 使用位图平铺的渲染效果.ComposeShader, 使用组合渲染效果来填充图片.LinearGradient, 使用线性渐变来填充图形RadialGradient, 使用圆形渐变来填充图形SweepGradient
2016-06-25 23:06:16 1761
原创 使用 drawBitmapMesh 扭曲图片
Canvas 提供了一个drawBitmapMesh((Bitmap bitmap, int meshWidth, int meshHeight, float[] verts, int vertOffset, int[] colors, int colorOffset, Paint paint)方法;该方法可以对Bitmap进行扭曲,如果这个方法用的好,开发者可以在android 应用上开发出,”水
2016-06-25 21:03:12 935
原创 使用 Matrix控制图片的变换
自定义 View 代码package com.test.matrixtest;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Matrix;import android.graphics.drawable.B
2016-06-25 13:26:16 543
原创 Bitmap绘图
自定义绘图 Viewpackage com.test.jiazaibigimage;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;i
2016-06-25 12:31:32 545 1
原创 Android之 drawTextOnpath
Android的 Canvas还提供了一个drawTextOnpath ( )方法package com.test.pathactivity;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;impo
2016-06-25 00:46:44 1738
原创 <Path>类
Android 提供的Path 类时一个非常有用的类.它可以预先在View 上将N个点连成一个”路径”,然后调用Canvas 的DrawPath(path , paint)即可沿着路径绘制图形.package com.test.pathactivity;import android.app.Activity;import android.content.Context;import androi
2016-06-24 23:33:48 264
原创 Android绘图基础之: Canvas 和 Paint
Android 绘图应该继承 View组件,并重写它的 onDraw(Canvas canvas)方法即可.package com.test.canvasdemo;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.
2016-06-24 21:42:55 245
原创 <Bitmap>
Bitmap 代表一张位图,BitmapDrawable里封装的图片就是一个 Bitmap对象.开发者为了把一个Bitmap 对象包装成 BitmapDrawable对象,可用调用 BitmapDrawable的构造器:Bitmap –> BitmapDrawable : //把一个Bitmap对象包装成 BitmapDrawable对象 BitmapDrawable drawab
2016-06-24 17:50:03 473
原创 自适应不同屏幕的资源
从Android3.2开始,Android建议直接使用真实的屏幕尺寸来定义屏幕尺寸. Android3.2, 支持在 layout /values 目录后添加sw<N>dp(屏幕尺寸至少宽N个dp才能使用该资源.), w<N>dp(屏幕尺寸宽N个dp才能使用该资源.) , h<N>dp (屏幕尺寸高可用高度为N个dp才能使用该资源). 例如,可指定layout-sw600dp ,表明该设备屏幕的宽
2016-06-24 15:27:57 257
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人