01 2016 档案
摘要:Android 中的异步消息处理主要由四个部分组成,Message、Handler、MessageQueue、Looper。下面将会对这四个部分进行一下简要的介绍。 1. Message: Message 是在线程之间传递的消息,它可以在内部携带少量的信息,用于在不同线程之间交换数据。通常使用 Me
阅读全文
摘要:如果想实现跨程序共享数据的功能,官方推荐的方式就是使用内容提供器,可以通过新建一个类去继承 ContentResolver 的方式来创建一个自己的内容提供器。 ContentProvider 类中有六个抽象方法,使用子类继承它的时候,需要将这六个方法全部重写。 onCreate(): 初始化内容提供
阅读全文
摘要:内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访问数据的安全性。目前,使用内容提供器是 Android 实现跨程序共享数据的标准方式。 不同于文件存储和 SharePrefere
阅读全文
摘要:当 SQLite 数据库创建完成后,如何查看数据库的内容呢?如果直接使用 File Explorer 查看,最多只能看到 database 目录下出现了一个 BookStore.db 文件,Book 表是无法通过 File Explorer 看到的。 我将简单介绍两种 SQLite 数据库的查看方式
阅读全文
摘要:修改短信数据库,从而生成任意手机号发送的短信。 AndroidManifest.xml activity_main.xml MainActivity.java 运行截图:
阅读全文
摘要:SQLite数据库 SQLite是一款轻量级的关系型数据库,它的运算速度非常快,占用资源很少,通常只需要几百K的内存就足够了,因此特别适合在移动设备上使用。 SQLite不仅支持标准的SQL语法,还遵守了数据库的 ACID 事务,只要你以前使用过其他的关系型数据库,就可以很快的上手SQLite。 而
阅读全文
摘要:SharedPreferences存储 SharedPreferences 使用键值对方式来存储数据的。当保存一条数据的时候,需要给这条数据提供一个对应的键,这样在读取数据的时候就可以通过这个键把相应的值取出。 SharedPreferences 支持多种不同数据类型的存储,可以按照需要取出数值型,
阅读全文
摘要:文件存储 文件存储是 Android 中最基本的一种数据存储方式,它不对存储的内容进行任何的格式化处理,所有数据都是原封不动的保存到文件当中的。它比较适合用于存储一些简单的文本数据或二进制数据。如果你想使用文件存储方式来保存一些较为复杂的文本数据,就需要定义一套自己的格式规范,方便于之后将文件重新解
阅读全文
摘要:广播机制简介 Android中的广播机制非常灵活,Android中的每个应用程序都可以对自己感兴趣的广播进行注册,这个程序也只会收到自己所关心的广播内容,这些广播可能是来自于系统的,也可能是来自于其他应用程序的。 Android提供了一套完整的API,允许应用程序自由地发送和接受广播。 Androi
阅读全文
摘要:碎片(Fragment)是一种可以嵌入活动当中的UI片段,它能让程序更加合理和充分地利用大屏幕的空间,因此碎片在平板上的应用非常广泛。 你可以将碎片理解成一个迷你型的活动,水平同样可能包含布局,同样都有自己的生命周期。。。 上面的例子中,移动设备使用两个活动装载布局,而平板电脑的布局分别放在两个碎片
阅读全文
摘要:用于把普通图片转换为圆角图像的工具类RoundRect类(复制即可使用): import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import an
阅读全文
摘要:你可能之前还没有听说过Nine-Patch这个名词,它是一种被特殊处理过PNG图片,能够指定哪些区域可以被拉伸而哪些区域不可以。 现在我将手把手教你如何去制作一张九点PNG图像。 Nine_Patch制作 素材: 首先我们试试不用九点PNG为TextView设置背景图片,XML参数如下: 最终效果如
阅读全文
摘要:ListView绝对可以称得上是Android中最常用的控件之一,几乎所有应用程序都会用到它。 由于手机屏幕空间都比较有限,能够一次性在屏幕上显示的内容并不多,当我们的程序中有大量的数据需要展示的时候,就可以借助ListView来实现。 ListView简易用法 创建一个ListViewTest项目
阅读全文
摘要:预览一下效果: 素材: 新建一个布局title_bar.xml,代码如下: 现在标题栏布局已经编写完成了,剩下的就是如何在程序中使用这个标题栏了,修改activity_main.xml中的代码,如下所示: 只需要通过一行include语句将标题布局引入进来就可以了: 最后别忘了在MainActivi
阅读全文
摘要:LinearLayout LinearLayout又称作线性布局,是一种非常常用的布局。 正如名字所描述的一样,这个布局会将它所包含的控件在线性方向上依次排列。 提示:如果LinearLayout的排列方式是horizontal,内部控件就绝不能将宽度指定为imatch_parent,因为这样的话单
阅读全文
摘要:ActivityCollector.java BaseActivity.java
阅读全文
摘要:掌握活动的生命周期对任何Android开发者来说都非常重要,当你深入理解活动的生命周期之后,就可以写出更加连贯流畅的程序。 返回栈 Android的活动是可以层叠的。每启动一个新活动,就会覆盖在原有活动之上,然后点击Back键会销毁最上面的活动,下面的一个活动就会重新显示出来。 其实Android是
阅读全文
摘要:Intent是Android程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。 显示Intent Intent有多个构造器函数的重载,其中一个是Intent( Context packageContent , Class<?>cls ) 第一
阅读全文
摘要:在res目录下的menu文件夹下创建一个main.xml文件,内容如下: 注释:这里创建了两个菜单项,其中<item>标签就是用来创建具体的一个菜单项,然后通过android:id给这个菜单项指定一个唯一的标识符,通过android:title给这菜单指定一个名称。 然后打开Activity,重写o
阅读全文
摘要:Android Studio的LogCat工具 Verbose:对应Log.v(),这个方法用于打印那些最为琐碎的信息,意义最小的日志信息。是Android日志里面级别最低的一种。 Debug:对应Log.d(),这个方法用于打印一些调试信息,这些信息对你调试程序和分析问题应该是有帮助的。比verb
阅读全文
摘要:import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public clas...
阅读全文