Posts tagged: android

声明的方式编写可复用按钮

在编写可复用的自定义按钮中,通过增加背景图的方式编写了按钮。这种方式一般应用于按钮是很特殊的图形的时候。 如果仅仅是编写可复用的自定义按钮中的按钮,可以看出,有边界、背景有渐进色,那么可以通过声明的方式获得更好的可配置特性。 这是生成的按钮: 这是按下后的按钮:    发送文章为PDF   

星期一 十一月 21st, 2011 in , , , | No Comments »

编写可复用的自定义按钮

Android的布局,要比iOS复杂的多。如果想写出和iOS类似的交互体验,付出的代价往往要增加一个数量级。 现在有个正在开发的Android项目,里面已经有了一些不合理的UI实现方式。比如按钮是一张图: 可以看出,应该用编程的方式来实现这个按钮,比如xml声明drawable,一个矩形框,四个边是圆角,要有个很细的边框,黑色的,背景色使用渐进色效果。登录使用文字而不是在图形里。 这样的好处很多: 自由的在不同分辨率屏幕下做适配,不必考虑图形的长宽比; 当文字改动后,不必喊上美工一起加班处理; 文字的国际化。 日志引用声明的方式编写可复用按钮    发送文章为PDF   

星期五 十一月 18th, 2011 in , , , | No Comments »

Android Wifi获取组播

Android的Wifi,默认情况下是不接受组播的,见:http://developer.android.com/reference/android/net/wifi/WifiManager.MulticastLock.html 默认情况下,应用是不接收组播信息的,这样要接收处理的报文太多,很快就会把电池用尽。要知道移动设备(特指电话一类的,平板要好得多)目前最重要的因素是电量。 要想打开组播功能,有以下几个步骤: 在Manifest文件中加入:android.permission.CHANGE_WIFI_MULTICAST_STATE,这个权限 获取到MulticastLock对象,这个对象不能直接实例化,要通过WifiManager间接得到,工厂模式 调用MulticastLock对象的acquire方法,获取到组播锁 相应的,用完组播,为了不浪费电力,要调用MulticastLock的release方法释放锁 下面写了个简单示例,通过组播发现服务器。 日志引用CocoaAsyncSocket学习    发送文章为PDF   

星期一 七月 11th, 2011 in , , , , , | No Comments »

中国水系Android第一个版本

写这个例子的目的是供同事和开发Android的朋友学习借鉴。 这个版本不是凭空冒出来的,就像爱因斯坦做手工的故事(不知道的见这里)一样,还有更丑的“小凳子”,它们是: 简单使用SimpleCursorAdapter 在视图显示中使用Style 在视图显示中使用Theme android 1.6下使用Loader示例 参考它们可以了解版本的演进过程。可能降低学习曲线。 这个版本的首页: 点击条目,会弹出带图片的详细信息界面: 这里的图片是从维基百科直接下载的,并会缓存在本地。 另外,就是对横竖屏使用了不同的布局:    发送文章为PDF   

android 1.6下使用Loader示例

android 3.0 sdk,引入了很多新api,比如Loader。和Fragment类似(编写兼容android1.6的fragment),该api也可在android 1.6以上版本执行。 以下介绍如何编写Loader,实现对ListView的异步加载。效果如图: 示例中有一个后台线程每隔3秒更新数据库的长江记录,将记录改为“长江”或“Long River”。ListView无需监控数据库变化,基于Loader,会自动更新。实际上这里面是观察者模式,无非是系统自带了,只需调用即可,无需自己构造观察者。 这个示例也是完整的sqlite+content provider+cursor adapter+listview+loader组合示例。 日志引用中国水系Android第一个版本    发送文章为PDF   

在视图显示中使用Theme

在在视图显示中使用Style中,使用的是针对一个视图指定元素的样式。如果要针对整个Activity,对它的背景颜色和字体等做统一的样式约定,就需要使用另外一个技术,theme。 以下示例就是在在视图显示中使用Style基础上增加了theme。 日志引用中国水系Android第一个版本android 1.6下使用Loader示例    发送文章为PDF   

在视图显示中使用Style

如果视图界面风格需要统一的规划,就需要使用android视图技术中的style。这类似HTML技术和CSS技术的关系。 示例改编自简单使用SimpleCursorAdapter。示例截图如下: 日志引用中国水系Android第一个版本在视图显示中使用Theme    发送文章为PDF   

简单使用SimpleCursorAdapter

如果使用Sqlite,建议和ContentProvider结合使用。这样数据库的生命周期就不用自己管了。然后,如果要在比如ListView中显示,可以使用CursorAdapter。简化的办法是使用子类SimpleCursorAdapter。 以下就介绍一下使用sqlite+content provider+cursor adapter的最简单实现示例。太简单了,示例如图: 日志引用中国水系Android第一个版本在视图显示中使用Style    发送文章为PDF   

编写兼容android1.6的fragment

在通过声明方式在Android 3.0上使用Fragment中写的例子只能用在android3.0以上的版本。之前也测试过兼容1.6的方式,见编写最简单的Fragment。现在修改了android3.0的示例,可以兼容1.6版本了。 这是在nexus one 2.3.3下的截屏。项目本身使用的sdk是1.6。 日志引用android 1.6下使用Loader示例    发送文章为PDF   

星期五 三月 25th, 2011 in , , , , | No Comments »

通过声明方式在Android 3.0上使用Fragment

在编写最简单的Fragment中使用的环境是1.6到2.3的。为了比较正式的学习一下Fragment的使用,在Android 3.0平板模拟器上开发了一个示例: 使用Fragment可以有两种方式,即: 通过布局xml文件,将fragment声明到布局里,这样fragment生命周期和Activity是绑定的 通过编程方式,自己可以灵活处理在Activity内的fragment生命周期,缺点是可能因为复杂的生命周期管理带来不可预期的效果,比如[cref 4096]示例 日志引用编写兼容android1.6的fragment    发送文章为PDF   

星期四 三月 24th, 2011 in , , , , | No Comments »