自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

编程问题与思索

Weibo:http://weibo.com/kylece Github:https://github.com/KyleCe

  • 博客(40)
  • 收藏
  • 关注

原创 Android第一个项目 SuperProfile 记录(更新中)

————此为完成《疯狂Android》初次览后的第一次试水,也算是对前面所学知识的第一次总结性回顾SuperProfile设计路程与问题记录此应用旨在设计出智能的、人性化的系列情景模式,纵观应用Android市场,也找不到一款能够让人满意的情景模式软件,此想法早在2013年初识Android时就已产生TabHostgetTabHost()newTabSpec

2015-01-31 17:52:23 713

转载 给Android开发者的建议(转载)

4.考虑使用StrictMode从Android 2.3开始提供了一个新的类StrictMode,该类可以用于捕捉发生在应用程序主线程中耗时的磁盘、网络访问或函数调用,可以帮助开发者改进程序,使主线程处理UI和动画在磁盘读写和网络操作时变得更平滑,避免主线程被阻塞。5.发布前禁用或尽量减少调试如果开发周期较长,你很可能在应用中内置了一些日志或调试代码,在发布前确保这些功能已经最小化或完

2015-01-31 17:51:49 567

原创 Android的Service与BroadcastReceiver之四 BroadcastReceiver 简介、开发与配置;发送广播、有序广播;使用BroadcastReceiver接受系统广播

BroadcastReceiver 简介、开发与配置本质上就是一种全局监听器,用于监听全局的广播消息。它可以非常方便地实现系统中不同组件之间的通信BroadcastReceiver用于接收程序锁发生的Broadcast Intent,启动BroadcastReceiver只需要两步创建需要启动的BroadcastReceiver的Intent调用Context的sendBroa

2015-01-31 17:51:16 597

原创 Android的Service与BroadcastReceiver之三 TelephonyManager、SmsManager、AudioManager、Vibrator、AlarmManager

TelephonyManager在程序中获取TelephonyManager只需要调用一下代码:TelephonyManager tManager =(TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);示例代码:publicclassTelephonyStatusextendsActi

2015-01-31 17:50:15 758

原创 Android的Service与BroadcastReceiver之二 跨进程调用Service(AIDL Service)

Android系统中各应用都运行在自己的进程中,进程间一般无法直接进行数据交换。为了实现跨进程通信,Android提供了AIDL Service(Android Interface Definition Language)与绑定本地Service不同的是,远程Service的onBind()方法只是将IBinder对象的代理传给客户端的ServiceConnection的onServiceCo

2015-01-31 17:49:39 1000

原创 Android的Service与BroadcastReceiver之一 Service简介、创建、配置、启动、停止与其生命周期

Service一直后台运行,它没有用户界面;一旦启动,就与Activity一样,完全具有自己的生命周期开发Service组件需要先开发一个Service的子类然后再AndroidManifest.xml文件中配置该Service,配置时可通过元素指定它可以被那些Intent启动Android系统提供了大量的Service组件,开发者可通过这些系统Service来操作Android系

2015-01-31 17:48:07 836

原创 Android的ContentProvider之三 监听ContentProvider数据改变

监听ContentProvider并随着ContentProvider的数据的改变而提供响应,这时就要利用ContentObserver之前所涉及的ContentProvider实现insert、delete、update任意方法时,程序都会调用如下代码getContext().getContentResolver().notifyChange(uri, null);这行代码可用于通知

2015-01-31 17:47:22 626

原创 Android的ContentProvider之二 实现自己的ContentProvider

开发只需两步:开发一个ContentProvider的子类,该子类需要实现query()、insert()、update()和delete()在AndroidManifest.xml文件中注册该ContentProvider,指定android:authorities属性provider            android:name=".FirstProvider"   

2015-01-31 17:47:15 9725

原创 Android的ContentProvider之一 功能、Uri用法、ContentResolver

ContentProvider是不同应用之间数据交换的标准API作为四大应用组件之一,ContentProvider也需要在AndroidManifest.xml文件中进行配置当应用程序通过ContentProvider暴露自己的数据操作接口之后,不管该APP是否启动,其他程序都可以操作该APP的内部数据数据共享标准ContentProviderContentP

2015-01-31 17:46:28 1389

原创 Android数据存储与IO之三 手势Gesture

Android提供了手势检测,并为手势检测提供了相应监听器Android允许开发者添加手势,并提供了相应的API识别用户手势手势检测GestureDetector类即用来实现手势检测,GestureDetector创建时需要传入一个GestureDetector.OnGestureListener实例,GestureDetector.OnGestureListene

2015-01-31 17:45:51 585

原创 Android数据存储与IO之二 SQLite数据库

SQLite只是一个嵌入式的数据库引擎,专门适用于资源有限的设备商适量数据存储(SQLite数据库只是一个文件)Android提供了SQLiteDatabase代表一个数据库,一旦应用程序获得了代表指定数据库的SQLiteDatabase对象,接下来就可通过SQLiteDatabase对象来管理、操作数据库了有如下静态方法来打开一个文件对应的数据库static SQLi

2015-01-31 17:44:45 592

原创 Android数据存储与IO之一 SharedPreference与File存储

SharedPreference概念、作用SharedPreference保存的数据主要是类似于配置信息格式的数据,因此它保存数据主要是简单类型的key-value对SharedPreference接口主要负责读取应用程序的Preferences数据,提供了如下常用方法boolean contains(String key)判断SharedPreferenc

2015-01-31 17:43:48 556

原创 Android的图形与图像处理之六 SurfaceView实现动画

View存在如下缺陷:View缺乏双缓冲机制程序需要更新View上的图像时,程序必须重绘View上显示的整张图片新线程无法直接更新View组件由于上述缺陷,通过自定义View实现绘图尤其是游戏中的绘图时性能并不好。Android提供了一个SurfaceView来代替ViewSurfaceView一般会于SurfaceHolder结合使用,SurfaceHolder用于向与之关联的S

2015-01-31 17:43:05 800

原创 Android的图形与图像处理之四 补间动画(Tween)

Tween与InterpolatorAndroid使用的Animation代表抽象的动画类,它包括如下子类:AlphaAnimation透明度ScaleAnimation缩放TranslateAnimation位移RotateAnimation旋转

2015-01-31 17:42:26 539

原创 Android的图形与图像处理之五 属性动画

某种程度上说,属性动画是增强版的补间动画,属性动画的强大可提现在如下两方面属性动画可以定义任何属性变化补间动画只能对UI组件执行动画,但属性动画几乎可以对任何对象执行动画(不管它是否在屏幕上)它有如下几方面属性持续时间默认300毫秒,通过android:duration指定动画插值方式通过android:interpolato

2015-01-31 17:42:24 692

原创 Android的图形与图像处理之三 逐帧动画(Frame)

定义逐帧动画非常简单,只要在元素中使用子元素定义动画的全部帧,并指定各帧的持续时间即可。android:onshot控制该动画是否循环播放,设为false则会循环播放也支持在Java代码中创建逐帧动画,调用addFrame(Drawable frame, int duration)向该动画中添加帧程序获取AnimationDrawable后,接下来就可用ImageView把Animat

2015-01-31 17:40:58 536

原创 Android的图形与图像处理之二 图形特效处理

使用Matrix控制变换Matrix是Android的一个矩形工具类,它与其它API结合来控制图形、组件的变换。使用步骤如下:获取Matrix对象,新建或获取已封装的Matrix调用Matrix方法进行平移、旋转、缩放、倾斜等将程序对Matrix所做的变换应用到指定图像或组件Matrix变换方法有:setTranslate(float dx, float dy)

2015-01-31 17:40:21 440

原创 Android的图形与图像处理之一 使用简单图片&绘图

R.drawable.file_name是一个int常量,若想获取实际的Drawable对象,可调用Resource的getDrawable(int id)获取Bitmap与BitmapFactoryBitmapDrawable里封装的图片就是一个Bitmap对象,封装方法如下:BitmapDrawable drawable = new BitmapDrawable(bit

2015-01-31 17:38:54 641

原创 Android的应用资源

类型及处理方式原生资源,存在assets目录下R访问,res颜色值:#RGB#ARGB(A代表透明度,0~f)#RRGGBB#AARRGGBBdimens.xml 尺寸dimenname=“spacing”>8dpdimen>bools.xml boolean常量boolname="is_male">truebool>

2015-01-31 17:37:39 368

原创 Android的Intent&IntentFilter Intent属性及Intent-filter配置

Android使用Intent来封装程序的调用意图,利于高层次解耦三种重要组件:Activity、Service、BroadcastReceiverIntent包含Component、Action、Category、Data、Type、Extra和Flag这7种属性ComponentIntent的Component属性需要接受一个ComponentName对象,

2015-01-31 17:37:12 728

原创 Android的Fragment

Fragment必须被“嵌入”Activity中使用,因此虽然Fragment也有生命周期,但其会受所在的Activity生命周期的控制。只有当Activity处于活动状态时,程序员才可通过方法独立地操作FragmentFragment总是作为Activity界面的组成部分。Fragment通过getActivity()获取Activity;Activity通过findFragmentBy

2015-01-31 17:36:30 349

原创 Android的Activity与Fragment之二 Activity的回调机制、生命周期、加载模式

活动、暂停、停止、销毁onCreate(Bundle savedState)onStart()onRestart()onResume()onPause()onStop()onDestroy()4.3.3 Activity 的4种加载模式standardsingleTop:Task顶单模式singleTak:Task内单例模式

2015-01-31 17:35:39 447

原创 Android的Activity与Fragment之一 配置使用Activity

Android重要组成单元:Activity、Service、BroadcastReceiver、ContentProvider实际应用中往往包括多个Activity,不同Activity向用户呈现不同的界面操作。Android应用的多个Activity组成Activity栈,当前活动的Activity位于栈顶4.1 建立、配置和使用ActivityActivity间接

2015-01-31 17:34:15 395

原创 Android事件处理之五 异步任务

AsyncTaskAndroid的UI线程主要负责处理用户的按键事件、用户触屏事件及屏幕绘制事件等,因此开发者的其它操作不应该也不能阻塞UI线程为避免UI线程失去响应,Android建议将耗时操作放在新线程中完成,但新线程可能需要动态更新UI组件,而新线程是不允许直接更新UI组件的。为解决新线程不能更新UI组件这一个问题,Android提供了如下方案:使用Handler实现线程

2015-01-31 17:33:59 618

原创 Android事件处理之四 Handler消息传递机制

Android的UI操作并不是线程安全的。Android消息传递机制是另一种形式的“事件处理”,Android只允许UI线程修改Activity里的UI组件,这样就会导致新启动的线程无法改变界面组件的属性值。这就需要Handler来实现Handler的主要作用:在新线程中发送消息在主线程中获取、处理消息为让主线程适时处理新线程所发送的消息,只能通过回调的方式来实现——开

2015-01-31 17:32:49 504

原创 Android事件处理之三 响应的系统设置的事件

应用程序随系统设置进行调整,如屏幕方向、判断系统方向的导航设备。有时也需让应用监听系统的动态配置3.4.1 Configuration 简介调用如下方法获取系统的Configuration对象:Configuration cfg = getResource().getConfiguration();获得系统Configuration对象后,有如下常用属性配置:

2015-01-31 17:32:17 409

原创 Android事件处理之二 基于回调的事件处理

Android还提供了一种基于回调的时间处理模型。代码上回调处理更简单3.3.1 回调机制与监听机制当用户在GUI组件上激发某个事件时,组件自己特定的方法将会负责处理该事件为了实现回调机制类处理GUI组件发生的时间,Android为所有GUI组件都提供了一些时间处理回调方法。以View为例:boolean onKeyDown(int keyCode, KeyEven

2015-01-31 17:31:41 517

原创 Android事件处理之一 基于监听的事件处理

本章要点基于监听的事件处理模型事件与事件监听接口实现事件监听器的方式基于回调的事件处理模型基于回调的事件传播常见的事件回调方法响应系统设置的事件重写onConfigurationChanged方法响应系统设置更改Handler类功能与用法使用Handler更新程序界面Handler、Looper、MessageQueue工作原理异步任务的功能与用法Android事件处理有两套机制:

2015-01-31 17:31:33 757

原创 Android界面编程之十一 ActionBar

ActionBar提供如下功能显示选项菜单的菜单项使用程序图标作为返回Home主屏幕或向上的导航操作提供交互式View作为Action View提供基于Tab的导航方式,可用于切换多个Fragment提供基于下拉的导航方式2.11.1 启用 ActionBar若希望关闭ActionBar,可设置应用主题为XXX.NoActionBar实际项目中通常推荐使用代码来控制

2015-01-31 17:30:16 544

原创 Android界面编程之十 菜单

系统在用户单击menu键后显示的菜单叫选项菜单(OptionMenu)2.10.1 SubMenuMenu接口只是一个父接口,它有两个子接口SubMenu代表一个子菜单ContextMenu代表一个上下文菜单Android不同菜单有如下特征:选项菜单:不支持勾选标记,并且只显示菜单的“浓

2015-01-31 17:30:05 579

原创 Android界面编程之九 对话框

Android提供了丰富的对话框支持,它提供如下4种常用对话框:AlertDialog实际应用最广泛的对话框ProgressDialog进度对话框,只是对简单进度条的封装DatePickerDialog日期选择对话框TimePickerDialog时间选择对话框

2015-01-31 17:29:22 583

原创 Android界面编程之八 各种杂项组件

此篇将介绍Android其他常用UI组件2.8.1 使用Toast显示提示信息框Toast这个提示信息框用于向用户生成简单的提示信息,它有如下特点:1.Toast 提示不会获得焦点2.Toast提示会在一段时间后自动消失使用Toast生成提示消息也非常简单,只要如下几个步骤:1.调用Toast构造器或makeText()静态方法创建一个Toast对象2.调用

2015-01-31 17:28:10 592

原创 Android界面编程之七 第六组UI组件:ViewAnimator及其子类

ViewAnimator是一个基类,它继承了FrameLayout,可以将多个View组件 叠在一起;可在切换View时表现动画效果ViewAnimator 支持的常见XML属性有:android:animateFistView显示第一个View组件时是否显示动画android:inAnimation设置ViewAnimator显

2015-01-31 17:28:01 642

原创 Android界面编程之六 第五组UI组件:ProgressBar及其子类

ProgressBar本身代表了进度条组件,它还派生了两个常用组件:SeekBar和RatingBar。它和其子类在用法上十分相似,只是显示界面上有区别2.6.1 ProgressBar的功能与用法Android支持几种风格的进度条,通过style属性可以为ProgressBar指定风格。其支持的属性有:@android:syle/Widget.Prog

2015-01-31 17:26:43 521

原创 Android界面编程之五 第四组UI组件:AdapterView及其子类

AdapterView本身是一个抽象基类,它派生的子类在用法上十分相似,只是显示界面有一定区别AdapterView继承了ViewGroupAdapterView可以包括多个“列表项”AdapterView显示的多个“列表项”由Adapter提供调用AdapterView的setAdapter(Adapter)方法设置AdapterAdapterView派生了三个子类:AbsLis

2015-01-31 17:26:17 736

原创 Android界面编程之四 第三组UI组件:ImageView及其子类

ImageView继承自View组件,ImageView还派生了ImageButton、ZoomButton等组件Image支持的XML属性如下:android:adjustViewBounds是否调整自己的边界来保持所显示图片的长宽比android:cropToPadding若属性设为true,该

2015-01-31 17:25:42 594

原创 Android界面编程之三 第二组UI组件:TextView及其子类

2.3.1 TextView与EditText的功能和用法TextView直接继承了View,它还是EditText、Button两个UI组件类的父类。TextView的作用就是在界面上显示文本它还派生了一个CheckedTextView,该子类增加了一个checked状态,通过setChecked(boolean)和isChecked()来改变、访问组件的checked状态,该组件还

2015-01-31 17:24:20 868

原创 Android界面编程之二 第一组UI组件:布局管理器

布局管理器是以ViewGroup派生而来的所有布局都可作为容器类使用,因此可以调用多个重载的addView()向布局管理器中添加组件。(实际上可以将一个布局管理器嵌套在另一个布局管理器中)2.2.1 线性布局 LinearLayout容器里的组件会一个挨着一个地排列。可以横向排列,亦可以纵向排列Android的线性布局不会换行,当组件一个挨着一个地排列到头后,剩下的组件

2015-01-31 17:23:24 674

原创 Android界面编程之一 View组件

2.1.1 视图组件与容器组件Android应用的绝大部分UI组件都放在android.widget包及其子包、android.view包及其子包中,Android应用的所有UI组件都继承了View类View类还有一个重要子类:ViewGroup,但ViewGroup通常作为其他组件使用。Android采用了“组合器”设计模式来设计View和ViewGroup:ViewGroup是View

2015-01-31 17:22:33 675

原创 Android学习基础之一 架构初始

提要AndroidHelloworld应用结构;AndroidManifest.xml;R.java;应用程序权限管理;组件;签名

2015-01-31 17:19:50 439

空空如也

空空如也

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

TA关注的人

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