android:layout_alignParentRight等对应的方法为addRule(int)
比如:
RelativeLayout.LayoutParams p=new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);
p.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
p.addRule(RelativeLayout.CENTER_VERTICAL);
p.rightMargin=10;
设置Margin可以采用上面简洁的方式,或者下面这样:
MarginLayoutParams margins= new MarginLayoutParams(20,20);//item的宽高
margins.setMargins(10, 0,10 , 0);
LayoutParams lp = new LayoutParams(margins);
1.开发前的准备
①证书:
<1>android系统要求每一个应用程序都有一个证书
<2>证书可以唯一的标识应用程序开发者
<3>密钥(key)和证书(certificates)存在于一个称为keystore的文件中。在开发过程中默认使用debug key,它存储在debug.keystore中,该文件在不同的系统中存放的位置不同。
win7系统:C:\Users\<username> \.android
windows XP:C:\Documents and Settings\<username>\.android\
OS X and Linux: ~/.android/debug.keystore
<4>debug.key的相关参数
keystore name: debug.keystore
keystore password:android
key alias(别名):androiddebugkey
key password:android
CN:“CN=Android Debug,O=Android,C=US”
②MD5与SHA1
MD5和SHA1是不同的数据加密算法,将一段明文以一种不可逆的方式转换成一段密文,也可以简单的理解为取一串输入码,并把它们转化为长度较短、位数固定的码。
2. 获取Google Map API key
①生成证书密钥
需要使用jdk自带的keytool.exe,在jdk安装路径的bin文件夹里。(最好把jdk的bin目录添加到环境变量中)
获取证书的MD5指纹:
在命令提示符下输入如下命令
keytool -list -alias keyalias -keystore <path>keyname.keystore -storepass passwd
命令参数解释:
keyalias :key的别名(开发时默认为androiddebugkey)
<path>keyname.keystore:指定keystore文件的完整路径,若不写path,则指当前目录,建议用cd 命令进入存储keystore文件的.android目录下。
passwd:keystore的密码
注意: jdk1.6版本以及以前版本使用MD5算法。jdk1.7.0版本使用SHA1算法。
将生成的MD5指纹拷贝下来。在命令提示符中的操作步骤为:
右键->标记->选中要复制的内容->猛敲Enter键
②申请API key
Google提供了一个专门用于生成API key的网页。地址为:
http://code.google.com/android/maps-api-signup.html
点选同意条款的复选框,输入你的MD5指纹,点Generate API key,就会在网页中生成一个API key,拷贝下来。(注意:这个API key是你独一无二的)
3.MapView:
Google Map最重要的一个类。位于
com.google.android.maps包下。它封装了Google Map地图大部分的功能。它需要连接网络,然后通过密钥来获取Google地图服务,然后以一个控件的形式显示在android手机上。
4.创建MapView
①添加类库:
需要用到goole定义的maps.jar,位于SDK安装路径下面的add-ons\addon_google_apis_google_inc_<n>\libs
<方法一>在创建的android project的时候,选择Google APIs,IDE就会自动帮我们加入maps.jar
<方法二>(eclipse的操作方法)选中项目->右键->build path->
add External archives->选中maps.jar
②创建MapActivity
自定义类继承抽象类MapActivity并重写isRouteDisplayed()方法,(不妨叫MyMapActivity)
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mapView = (MapView)findViewById(R.id.mapView);//获得MapView实例 mapView.setBuiltInZoomControls(true);//添加控制地图放大缩小的控件 }
③在布局文件中注册MapView
新建布局文件,不妨命名为map.xml.在布局标签对中添加如下代码:
<com.google.android.maps.MapView android:id="@+id/mapView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:clickable="true" android:apiKey="0g267XkZzdQVYGTnOSz4woPjW15w54Q3-sOf-0A" />
其中android:apiKey属性的值即为我们申请到的API key
④AndroidManifest.xml中的配置
1’ .添加类库
在application标签对中添加如下代码:
<uses-library android:name="com.google.android.maps" />
2’.赋予应用程序连接网络的权限
<uses-permission android:name="android.permission.INTERNET"/>
3’注册MyMapActivity
<activity android:name=".MyMapActivity> </activity>
好了,一个Google Map就制作好了,你是不是在地图上找到了你现在所处的位置了?是不是很有成就感呢?
但是现在的Google Map功能还很有限,更多功能我将会陆续贴出来。
国外知名调查分析机构Vision Mobile发布2012跨平台开发工具报告 , 开发者市场占有率Top 10为:1. PhoneGap 32% 2. Sencha Touch/JQ Touch 30% 3. Mono 26% 4. Appcelerator 24% 5. Adobe Flex 22% 6. Unit 3 20% 7. Corona 17% 8. AppMobi 16% 9. RunRev 16% 10. Mosync 16%。
有意思的是,调查显示,这个市场似乎很不稳定,PhoneGap是开发者当前选用、计划采用的领先跨平台工具,但在开发者计划弃用的调查中,也位于第三
位。可以说,PhoneGap是进入跨平台开发领域的垫脚石工具,此外只有一半VisionMobile移动开发者心理经济报告的账户参与了跨平台工具调
查。
从产业意义上,跨平台开发为2012年的移动业界添加了变数,对于iOS和Andriod之外的后进平台来说,跨平台工具的推行使得应 用扩展到新平台商店,不仅量更容易上去,Top应用的迁移也在加速。此外,其最大的影响在于使移动开发大众化了,基于这些工具,移动互联网可以说对所有层 级的开发者敞开了大门。
2011年,很多工具被VC注资、或被收购。VisionMobile搜集到10起收购,2亿美元的融资。资本是这些跨平台工具是否能存活下来的关键因素之一,首先需要获得VC资金支持推出免费版本获得用户,另一个关键因素是如何让免费用户升级至付费。
此外,调查发现,跨平台开发工具在引入HTML5技术方面比浏览器还积极还深入,它们大力在推动HTML5成为主流开发技术,原因在于可令广大的传统Web开发者入场。发现60%受访开发者拥有5年以上Web开发经验。
VisionMobile预计跨平台开发将成为常态,毕竟没有那个开发商死守某一特定平台,这意味者有限的用户和收入。在影响开发者工具选择的十大要素中,Top3分别为:支持目标平台(61%)、无需学习新语言和工具(43%)、低成本甚至免费(40%)。