9
2010

用Gallery实现带文字提示的显示效果

实现的效果类似这样:

image

和上周实现的实现横向的类似Gallery的效果不同,那是用scrollview和tablelayout实现的,事后发现当横向滚屏选择图片的时候,如果有纵向位移,也会造成下面列表的纵向滚动。

阅读全文 »

6
2010

自定义Activity的标题

Android Activity标题,默认情况下是个TextView,显示应用名称的文字。

如果想把标题定义为带图的或者比较复杂的界面效果,就要用到自定义Activity标题。

示例效果:

image

阅读全文 »

6
2010

实现横向的类似Gallery的效果

还是针对IMDb,它的图片部分是横向滚动的。

image

研究了一下,是用类似ScrollView和TableLayout来实现的。也就是说在ListView的Header部分(有关ListView实现,见为ListView增加Header中的分析),是一个横向的ScrollView,嵌套一个TableLayout布局,和内部的一个TableRow。

实现示例的效果:

m44

阅读全文 »

6
2010

为ListView增加Header

要实现类似IMBd类似的布局。

m1 m2

可以看出它的列表上方的图片展示区和下面列表条目是一体的,在上下滚动的时候。而图片展示区不是列表条目。

阅读全文 »

5
2010

简单分析apk文件中的信息

有时候,看到android应用做的很好,想学习借鉴一下。比如看看配置文件或者manifest文件内容等等。

apk文件采用zip格式压缩,因此可以很容易解压缩。

问题是文本文件全部做了二进制处理。

如果只是想简单了解apk包的manifest信息,可以使用aapt命令:

image

阅读全文 »

5
2010

一个手势横向切换视图的示例

不是我写的,原文见:http://www.codeshogun.com/blog/2009/04/16/how-to-implement-swipe-action-in-android/

其实以前自己也写过,见写了一个android带动画翻页效果的程序编写android简单的手势切换视图示例

看到上面的文档,以为能实现悬停的效果,比如Home Screen那样:

aa1

阅读全文 »

3
2010

总结Content Provider的使用

本文参考:http://androidappdocs.appspot.com/guide/topics/providers/content-providers.html

Android中的Content provider机制可支持在多个应用中存储和读取数据。这也是跨应用共享数据的唯一方式。在android系统中,没有一个公共的内存区域,供多个应用共享存储数据。

Android提供了一些主要数据类型的Content provider,比如音频、视频、图片和私人通讯录等。可在android.provider包下面找到一些android提供的Content provider。可以获得这些Content provider,查询它们包含的数据,当然前提是已获得适当的读取权限。

如果想公开自己的数据,那么可有两种办法:

  1. 创建自己的Content provider,需要继承ContentProvider类;
  2. 如果你的数据和已存在的Content provider数据结构一致,可以将数据写到已存在的Content provider中,当然前提是获取写该Content provider的权限。比如把OA中的成员通讯信息加入到系统的联系人Content provider中。

阅读全文 »

3
2010

在content provider中使用大型二进制文件

如果在content provider中使用小的二进制文件,可以参见在content provider中使用二进制数据。如果过大,可能会引起OutOfMemory错误。可以考虑把这些过大的文件保存在文件系统中,而不是sqlite数据库中。

本文实现代码的效果和在content provider中使用二进制数据中相同,区别是二进制的图像文件不再保存在sqlite数据库中,表中只保存一个特征码字符串,其实也可不用,直接用id。然后把图片保存在/data/data/your.package/files目录下。特征码就是用于定义该目录下具体的文件名的。

首先,修改表结构:

database.execSQL("create table if not exists emperors("
        + " id integer primary key autoincrement," + " name text,"
        + "dynasty text," + "start_year text," + "image text"
        + ");");

 

可以看到image字段使用文本型了。

阅读全文 »

3
2010

在content provider中使用二进制数据

在android的sqlite中,如果要处理二进制数据,就要用到blob类型。这也可以运用到content provider中。

实现了一个超丑陋的示例,在编写完整的Content provider示例基础上。

image

阅读全文 »

3
2010

编写完整的Content provider示例

在Content provider实现中使用SQLiteOpenHelper中实现的是特别简单的content provider,方法实现不全。下面给出一个实现比较全面的Content provider,当然也是很简单的。

使用UriMatcher

UriMatcher可以帮助开发者识别Uri。比如:

content://com.easymorse.cp.mycp/emperors

表示获取朝代列表集合。而:

content://com.easymorse.cp.mycp/emperors/1

表示其中的_ID值为1的一个特定的记录。

如果自己写分析Uri的代码,比较繁琐和重复。android提供了方便的工具类UriMatcher。

阅读全文 »

第4页,共68页«12345678910»...后 »