当前位置:  编程技术>移动开发
本页文章导读:
    ▪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
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指纹:
在命令提示符下输入如下命令

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功能还很有限,更多功能我将会陆续贴出来。







    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3