创建RasterMap实例之后,可以对其进行放大,缩小,平移,设置地图类型等操作。
在第一个地图应用中,在调用RasterMap.setCenter 时可以指定地图类型,另外也可以使用RasterMap.setMapType来更改地图类型,地图开发包中定义了Google 地图,Google 中国地图,Bing 地图,Bing 卫星图等20多种地图类型,也就可设置自已定义地图类型。
下面的例子顺序显示Google 中国地图,MapAbc地图,Bing 中国地图
//--------------------------------- PACKAGE ------------------------------------ package com.pstreets.gisengine.demo.lwuit; //--------------------------------- IMPORTS ------------------------------------ import com.mapdigit.gis.geometry.GeoLatLng; import com.mapdigit.gis.raster.MapType; import com.pstreets.gisengine.demo.MapDemoLWUIT; import com.sun.lwuit.Command; import com.sun.lwuit.events.ActionEvent; public class MapTypeLWUIT extends MapDemoLWUIT { private Command mapTypeCommand; private int mapType = 0; private static final int[] mapTypes = {MapType.GOOGLECHINA, MapType.MAPABCCHINA, MapType.MICROSOFTCHINA}; public void startApp() { init(); //Creat the main form. canvas.setTitle("Map Type"); mapTypeCommand = new Command("MapType",2) { public void actionPerformed(ActionEvent evt) { map.setMapType(mapTypes[mapType]); mapType++; mapType %= mapTypes.length; } }; canvas.addCommand(mapTypeCommand); GeoLatLng center = new GeoLatLng(32.0616667, 118.7777778); map.setCenter(center, 13, MapType.GOOGLECHINA); canvas.show(); } }
LWUIT 引路蜂地图开发包Ver2.1下载
HockeyKit是一个用于iOS和Android下的app更新的开发包,作者是Thomas Dohmke,主页是:http://hockeykit.net/
简述:
Hockey 是一个iOS Ad-Hoc 自动更新框架。所有的苹果店中的app都可以使用它,它能显著提高整个beta测试过程。它分为两部分:服务器和客户端框架。服务端组件总是必需的,它不需要客户端库就能单独工作。它提供了一个web界面给beta测试者通过iPhoneSafari去安装最新的AdHoc激活文档及最新的beta测试版本。只需在服务器上安装一次服务端,就可以处理bundle identifier不同的多个应用程序(我强烈建议对Debug、AdHocBeta和AppStore发布版使用不同的Bundle identifier)。默认当app启动或唤醒时,客户端会从服务器检测更新。用户可以在设置对话框中修改这个设置:一天一次或手动检测更新。
这个框架是在读了这篇博客之后创建的:http://jeffreysambells.com/posts/2010/06/22/ios-wireless-app-distribution/,在这个帖子中Jeffrey Sambells讨论的一些机制被我们采纳了。
完整文档的wiki在这里:https://github.com/TheRealKerni/HockeyKit/wiki
需求:
- 一个PHP5服务器用于发布app
- 不需要数据库
特性:
- iOS AdHoc编译,OTA发布
- 自动生成站点,可以针对任何设备或桌面浏览器浏览的版本
- 在Web界面上只需创建子目录并加进或覆盖.ipa和.plist文件(任意文件名)
- 站点可用于初次安装和升级,iOS3用户可以从桌面浏览器打开站点并下载app,站点将指导使用iTunes进行安装的步骤
- 一个服务器能处理多个app,每个app一个目录
- 可以将发布说明放在.html文件中并显示在页面中
- 可选择是否显示Provisioning Profile文件链接(当有新的用户加入profile时很有用,这样就不需要专门为此编译出一个版本)
- 支持在安装过程中显示app图标,把任何.png文件放入子目录(114x114像素能用于所有设备)
- 可选客户端框架
- 框架会通知用户进行更新,iOS4 用户可以直接从客户端安装(In-App_Updates),iOS3用户则会被提示访问网站
- 框架能自动发送(可选)UDID,程序版本,iOS版本和设备类型到服务器,这将自动显示到网站的/status/页面(需要给PHP脚本写权限)
- 在stats目录下的userlist.txt文件中,可以以命名的方式替换UDIDs在status的显示
- 通过书签从iOS program portal的device页提取所有的UDIDs和名字到stats页中
- 一个Xcode3的编译脚本的模板,可以在编译后将所有文件上传到服务器 (Beta Automatisation.sh)
备注:
- 服务器可以单独运行,客户端是可选的
- Beta测试者至少需要iOS4才能体验到自动更新的功能
- 使用iOS 3的Beta测试者由app通知更新
- 请下载 iOS README.mkdown 文件以查看其他关于客户端的注意事项
- 不要在Organizer中输入app图标链接,Hocky会根据存在的png文件(114像素的图标对所有设备类型可用)自动想服务器上的plist文件中加入app图标
- 确认ipa文件名中不包括空格,否则iOS不能调用URL
- 不要每次编译都为ipa文件取一个不同的文件名,因为每个文件夹下只有第一个ipa文件有效
关于Activity横竖屏切换的声明周期变化:
1、新建一个Activity并把各个生命周期打印出来
2、运行Activity,得到如下信息
onCreate-->
onStart-->
onResume-->
3、按crtl+f12切换成横屏时
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
4、再按crtl+f12切换成竖屏时,打印信息如下
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
5、修改AndroidManifest.xml,把该Activity添加 android:configChanges="orientation",执行步骤3
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
6、再执行步骤4,发现不会再打印相同信息,但多打印了一行onConfigChanged
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
onConfigurationChanged-->
7、把步骤5的android:configChanges="orientation" 改成 android:configChanges="orientation|keyboardHidden",执行步骤3,就只打印onConfigChanged
onConfigurationChanged-->
8、执行步骤4
onConfigurationChanged-->
onConfigurationChanged-->
总结:
1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法
总结一下整个Activity的生命周期
补充一点,当前Activity产生事件弹出Toast和AlertDialog的时候
ActivityActivity的生命周期不会有改变运行时按下HOME键(跟被完全覆盖是一样的):onSaveInstanceState --> onPause --> onStop onRestart -->onStart--->onResume
Activity未被完全覆盖只是失去焦点:onPause--->onResume
文章出自网络