当前位置: 编程技术>移动开发
本页文章导读:
▪Tab Layout(选项卡格局) Tab Layout(选项卡布局)
Tab Layout(选项卡布局):http://hualang.iteye.com/blog/976826参考:http://book.51cto.com/art/201007/214806.htm所有讲解可以参考上面两个地址。三个对应tab的Activitypackage com.pandy.layout;
.........
▪ 传接数据 Passing Data Between Views (实例) 传送数据 Passing Data Between Views (实例)
Passing Data Between Views
In this tutorial i will be showing you how to create multi functioning buttons
Features:
1 Label
1 UITextField
2 Buttons
2 Views
Passing dada between views is very handy.........
▪ 打造属于自己的Google Map 制作属于自己的Google Map
1.开发前的准备①证书:<1>android系统要求每一个应用程序都有一个证书<2>证书可以唯一的标识应用程序开发者<3>密钥(key)和证书(certificates)存在于一.........
[1]Tab Layout(选项卡格局)
来源: 互联网 发布时间: 2014-02-18
Tab Layout(选项卡布局)
Tab Layout(选项卡布局):http://hualang.iteye.com/blog/976826
参考:http://book.51cto.com/art/201007/214806.htm
所有讲解可以参考上面两个地址。
三个对应tab的Activity
加入Activity
AndroidManifest.xml
资源文件:
res/drawable-hdpi下面存放myimage1.png,myimage2.png两个黑白相应的图片,以及ic_tab_artists.xml
main.xml
主程序
Tab Layout(选项卡布局):http://hualang.iteye.com/blog/976826
参考:http://book.51cto.com/art/201007/214806.htm
所有讲解可以参考上面两个地址。
三个对应tab的Activity
package com.pandy.layout; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class AlbumsActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView textview = new TextView(this); textview.setText("This is the Albums tab"); setContentView(textview); } }
package com.pandy.layout; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class ArtistsActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView textview = new TextView(this); textview.setText("This is the Artists tab"); setContentView(textview); } }
package com.pandy.layout; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class SongsActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView textview = new TextView(this); textview.setText("This is the Songs tab"); setContentView(textview); } }
加入Activity
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.pandy.layout" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="10" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".TabLayoutDemoActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".ArtistsActivity" android:label="@string/app_name" > </activity> <activity android:name=".SongsActivity" android:label="@string/app_name" > </activity> <activity android:name=".AlbumsActivity" android:label="@string/app_name" > </activity> </application> </manifest>
资源文件:
res/drawable-hdpi下面存放myimage1.png,myimage2.png两个黑白相应的图片,以及ic_tab_artists.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- When selected,use grey --> <item android:drawable="@drawable/myimage1" android:state_selected="true"/> <!-- When not selected ,use white --> <item android:drawable="@drawable/myimage2"/> </selector>
main.xml
<?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp"> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp" /> </LinearLayout> </TabHost>
主程序
package com.pandy.layout; import android.app.TabActivity; import android.content.Intent; import android.content.res.Resources; import android.os.Bundle; import android.widget.TabHost; public class TabLayoutDemoActivity extends TabActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Resources res = getResources(); // Resource object to get Drawables TabHost tabHost = getTabHost(); // The activity TabHost TabHost.TabSpec spec; // Resusable TabSpec for each tab Intent intent; // Reusable Intent for each tab // Create an Intent to launch an Activity for the tab (to be reused) intent = new Intent().setClass(this, ArtistsActivity.class); // Initialize a TabSpec for each tab and add it to the TabHost spec = tabHost.newTabSpec("tab1").setIndicator("标题一",res.getDrawable(R.drawable.myimage1)).setContent(intent); tabHost.addTab(spec); // Do the same for the other tabs intent = new Intent().setClass(this, AlbumsActivity.class); spec = tabHost.newTabSpec("tab2").setIndicator("标题二",res.getDrawable(R.drawable.myimage1)).setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, SongsActivity.class); spec = tabHost.newTabSpec("tab3").setIndicator("标题三",res.getDrawable(R.drawable.myimage1)).setContent(intent); tabHost.addTab(spec); tabHost.setCurrentTab(1); // 或采用如下的代码 // getTabHost().setCurrentTabByTag("tab3"); } }
[2] 传接数据 Passing Data Between Views (实例)
来源: 互联网 发布时间: 2014-02-18
传送数据 Passing Data Between Views (实例)
Passing Data Between Views
In this tutorial i will be showing you how to create multi functioning buttons
Features:
- 1 Label
- 1 UITextField
- 2 Buttons
- 2 Views
Passing dada between views is very handy if you require content to move throughout you application its also very helpful for games where your score or info can be passed to the next view where theres leader boards or extra content
The Code
Play the video to get a step by step walkthrough and all code can be copy and pasted
ViewController.h
#import <UIKit/UIKit.h> #import "secondview.h" @interface ViewController : UIViewController { secondview *secondviewData; __weak IBOutlet UITextField *textfield; } @property (nonatomic,retain)secondview *secondviewData; - (IBAction)passdata:(id)sender; @end
ViewController.m
#import "ViewController.h" #import "secondview.h" @implementation ViewController @synthesize secondviewData; -(IBAction)passdata:(id)sender { secondview *second = [[secondview alloc] initWithNibName:nil bundle:nil]; self.secondviewData = second; secondviewData.passedValue = textfield.text; [self presentModalViewController:second animated:YES]; }
Secondview.h
#import <UIKit/UIKit.h> @interface secondview : UIViewController { __weak IBOutlet UILabel *label; NSString *passedValue; } @property (nonatomic,retain)NSString *passedValue; - (IBAction)back:(id)sender; @end
Secondview.m
#import "ViewController.h" @implementation secondview @synthesize passedValue; -(IBAction)back:(id)sender { ViewController *second = [[ViewController alloc] initWithNibName:nil bundle:nil]; [self presentModalViewController:second animated:YES]; } - (void)viewDidLoad { label.text = passedValue; [super viewDidLoad]; // Do any additional setup after loading the view from its nib. }
视频:http://www.youtube.com/watch?v=Y4zmM_Rqv6Y&feature=player_embedded
[3] 打造属于自己的Google Map
来源: 互联网 发布时间: 2014-02-18
制作属于自己的Google Map
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指纹:
在命令提示符下输入如下命令
命令参数解释:
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)
③在布局文件中注册MapView
新建布局文件,不妨命名为map.xml.在布局标签对中添加如下代码:
其中android:apiKey属性的值即为我们申请到的API key
④AndroidManifest.xml中的配置
1’ .添加类库
在application标签对中添加如下代码:
2’.赋予应用程序连接网络的权限
3’注册MyMapActivity
好了,一个Google Map就制作好了,你是不是在地图上找到了你现在所处的位置了?是不是很有成就感呢?
但是现在的Google Map功能还很有限,更多功能我将会陆续贴出来。
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功能还很有限,更多功能我将会陆续贴出来。
最新技术文章: