自定义博客皮肤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)
  • 收藏
  • 关注

原创 10 Service

10.1 Service简介Service组件也是可执行的程序,它也有自己的生命周期。创建,配置Service与创建,配置Activity的过程基本相似,下面详细介绍Android Service的开发。>>10.1.1创建,配置Service就像开发Activity需要两个步骤:1.开发Activity子类;2.在AndroidManifest.xml文件中配置Activity。开发

2018-02-08 17:49:59 194

原创 File存储

读者学习JavaSE的时候都知道Java提供了一套完整的IO流体系,包括FileInputStream,FileOutputStream等,通过这些IO流就可以非常方便的访问磁盘上的文件内容。Android同样支持这种方式来访问手机存储器上的文件。》》8.2.1 openFileOutput和openFileInputContext提供了如下两个方法来打开应用程序的数据文件夹里的文件IO流

2018-02-07 17:58:24 229

原创 8.1使用SharedPreferences

有时候,应用程序有少量数据需要保存,而且这些数据的格式很简单,都是普通的字符串,标量类型的值等,比如应用程序的各种配置信息(如是否打开音效,是否使用震动效果等),小游戏的玩家积分(如扫雷英雄榜之类的)等,对于这种数据,Android提供了SharedPreferences进行保存。8.1.1 SharedPreferences与Editor简介SharedPreferences保存的数据主

2018-02-07 16:29:42 460

原创 5.1Intent对象简述

Android的应用程序包含三种重要组件:Activity,Service,BroadcastReceiver,应用程序采用一致的方式启动他们——都依靠Intent来启Intent就封装了程序要启动程序的意图。不仅如此,Intent还可用于与被启动组件交换数据。Intent 启动不同组件的方法:Activity:startActivity(Intent intent),startAct

2018-01-23 10:18:18 244

原创 Activity的四种加载模式

正如前面介绍Activity配置时提到的,配置Activity时可指定android:launchMode属性,该属性用于配置该Activity的加载模式。该属性支持如下·4个属性值。 >standard:标准模式,这是默认的加载模式。 >singleTop:Task栈顶单例模式。 >singleTask: Task内单例模式。 >singleInstance:全局单例模式。Android采用Ta

2018-01-18 17:55:06 338

原创 Handler,Loop,MessageQueue的工作原理

为了更好地理解Handler的工作原理,下面先介绍一下与Handler一起工作的几个组件.> Message: Handler接受和处理的消息对象.>Looper :每个线程只能拥有一个Looper.他的loop()方法负责读取MessageQueue中的消息,读到消息之后把消息发送给该小小的Handler进行处理.>MessageQueue:消息队列,他采用先进先出的方式管理Mess

2017-12-29 17:30:37 253

原创 3.5 Handler消息传递机制

处于性能优化考虑,Android的UI操作并不是线程安全的,这意味着如果有多个线程并发操作UI组件,则可能导致线程安全问题。为了解决这个问题,Android制定了一条简单的规则:只允许UI线程修改Activity中的UI组件。当程序一个程序第一次启动时,Android会同时启动一条主线程(Main Thread),主线程主要负责处理与UI相关的事件,如用户的按键事件,用户接触屏幕的事件以及屏幕

2017-12-29 16:36:12 186

原创 Android事件处理概述

不管是桌面应用还是手机应用程序,面对最多的就是用户,经常需要处理的就是i用户动作——也就是需要为用户动作提供响应,这种为用户动作提供响应的机制就是事件处理。Android提供了2套强大的事件处理机制:>基于监听的事件处理。>基于回调的事件处理。对于基于监听的事件处理而言,主要做法就是为Android界面组件绑定特定的事件监听器。Android还允许再界面布局文件中为UI组件的a

2017-12-29 15:20:17 234

原创 使用DatePickerDialog,TimerPickerDialog

DatePickerDialog与TimePickerDialog的功能比较简单,用法也简单,只要如下两步即可。1.通过new关键字创建DatePickerDialog,TimePickerDialog实例,调用他们的show()方法即可将日期选择框,时间选择对话框显示出来。2.为DatePickerDialog,TimePickerDialog绑定监听器,这样就可以保证用户通过DateP

2017-12-29 15:14:18 239

原创 2.9 第7组UI组件 : 对话框

Android提供了丰富的对话框支持,他提供了如下4种常用对话框。>AlertDialog : 功能最丰富,实际应用最广的对话框。>ProgressDialog : 进度对话框,这个对话框只是对进度框的包装。>DatePickerDialog: 日期选择对话框,这个对话框只是对DatePicker的包装。>TimePickerDialog : 时间选择对话框,这个对话框只是对TIm

2017-12-29 11:09:30 148

原创 Notification的功能和用法

Natification是显示在手机状态栏的通知——手机状态栏位于手机最上方,哪里一般显示手机当前的网络状态,电池状态,时间等。Notification所代表的是一种全局状态的通知,程序一般通过NotificationManager服务来发送Notification。NotificationManager是一个重要的系统服务,该API位于应用程序框架层,应用程序可通过NotificationM

2017-12-29 10:16:16 620

原创 Spinner的功能和用法

Spinner其实是一个列表选择框,不过Android的列表选择框并不需要显示下拉列表,而是相当于弹出一个菜单供用户选择。Spinner与Gallery都继承了AbsSpinner,AbsSpinner继承了AdapterView,因此他也表现出AdapterView的特征:只要为AdapterView提供Adapter即可。android:entries属性并不是Spinner定义的,而

2017-12-29 08:51:19 27667

原创 BaseAdapter实现不存储列表项的ListView

本实例将会通过扩展BaseAdapter来实现Adapter,扩展BaseAdapter可以取得对Adapter最大的控制权 :程序要创建多少个列表项,每个列表项的组件都由开发者决定。public class MainActivity extends AppCompatActivity { ListView mylist; @Override protected

2017-12-28 17:42:02 173

原创 使用SimpleAdapter创建ListView

ListView的大多数场景都可以通过SimpleAdapter来提供列表。使用SimpleAdapter的最大难点在于创建SimpleAdapter对象,它需要5个参数,其中后面4个非常关键。>第2个参数:该参数时一个List>类型的集合对象,该集合中每个Map对象生成一个列表项。次参数将所有数据的数组以map的形式加入到list集合中,就是提供数据的。>第3个参数: 该参数指定一个

2017-12-28 17:34:35 274

原创 2.5 第4组UI组件: AdapterView及子类

AdapterView是一组重要的组件,AdapterView本身是一个抽象基类,它派生的子类在用法上十分相似,只是i显示界面有一定的区别,因此本节把他们归为一类,针对他们的共性集中讲解,并突出介绍他们之间的区别。AdapterView具有如下特征。>AdapterView继承了ViewGroup,它本质是是容器。>AdapterView可以包含多个“列表项”,并将多个“列表项”以合适

2017-12-28 14:50:02 223

原创 2.4 第三组UI组件 : ImageView 及其子类

ImageView继承自View组件。它主要功能时显示图片——实际上这个说法不太严谨,因为它能显示的不仅是图片,任何Drawable对象都可以使用ImageVIew来显示。除此之外,ImageView还派生出了ImageButton,ZoomButton等组件,ImageView支持的XML属性和方法也适用于ImageButton,ZoomButton等组件。ImageView支持的and

2017-12-28 09:14:15 216

原创 显示时间和计时器

一。时钟时钟UI组件是2个非常简单的组件:TextClock本身就继承TextView——也就是说,它本身就是文本框,只是它里面的内容总是显示的是当前的时间。与Textview不同的是,为TextClock设置text属性没有什么卵用。TextView取代早期的DigitalClock组件,因此功能更加1强大——TextClock能以24小时制和12小时制来显示时间,而且可以由程序员指

2017-12-27 16:01:15 733

原创 TextView边框

一。首先看看EditView,这个加一个背景颜色就可以营造出,编辑框有边框的假象。LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schema

2017-12-27 14:51:11 257

原创 自定义组件

当Android系统提供的UI组件不足以满足项目需求时,开发者可以通过继承View来派生自定义组件。当开发者打算派生自己的UI组件时,首先定义一个继承View基类的子类,然后重写View类的一个或多个方法。通常可以被用户重写的方法如下。> 构造器 : 重写构造器时定制View的最基本的方式,当Java代码创建一个View实例,或根据XML布局加载并构建界面时将需要调用该构造器。>onF

2017-12-26 10:34:21 181

原创 使用XML布局文件和Java代码混合控制UI界面

完全使用Java代码控制UI界面不仅繁琐,而且不利于解耦;而完全利用XML布局晚间来控制UI界面虽然方便,便捷,但难免有失灵活。因此有时候,可能需要混合使用XML布局文件和代码来控制UI界面。当混合使用XML布局和Java代码来控制UI界面时,习惯上把变化下,行为比较固定的组件放在XML布局文件中管理,而那些变化比较多,行为控制比较复杂的控件则交给Java代码来管理。简单思路:XML布局中

2017-12-26 09:06:38 1464

原创 1.6.2 Service

Service与Activity的地位时并列的,它代表的是一个单独的Android组件。Service与Activity的区别在于:Service通常位于后台运行,它一般不需要与用户交互,因此Service组件没有图形化界面。与Activity组件需要继承Activity基类相似,Service组件需要继承Service基类。一个Service组件被运行起来后,他将拥有自己独立的生命周期,Se

2017-12-25 18:27:53 306

原创 1.1.2Android 5.x平台架构及特性

Android系统的底层建立在Linux之上,该平台由操作系统、中间件、用户界面和应用软件4层组成,它采用一种被称为软件层叠(Software Stack)的方式进行构建。这种软件层叠结构是的层于层之间相互隔离,明确各层之间的分工。这种分工保证了层与层之间的低耦合,当下层的层内或层下发生改变时,上层的应用层序无需任何改变。Android系统主要由5部分组成,下面分别对这5部分简单介绍。1.

2017-12-25 14:38:04 494

原创 android usb连接打印机,打印各种格式

http://download.csdn.net/my

2017-12-25 10:44:41 5877

空空如也

空空如也

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

TA关注的人

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