深圳网站制作公司易捷网络欢迎您,我司主营业务:深圳企业网站制作,欢迎来电。
深圳企业网站制作
深圳网站制作业务咨询
0755-61603557
赵先生:13714247375
深圳网站制作技术支持
您现在的位置:网站首页 > 深圳网站制作教程

android页面跳转和切换的方式

文章作者:易捷网站制作公司编辑    文章来源:深圳网站制作公司-易捷网络

第一种方式,用action来跳转。

1、使用Action跳转,如果有一个程序的AndroidManifest.xml中的某一个Activity的IntentFilter段中定义了包含了相同的Action那么这个Intent就与这个目标Action匹配。如果这个IntentFilter段中没有定义Type,Category,那么这个Activity就匹配了。但是如果手机中有两个以上的程序匹配,那么就会弹出一个对话可框来提示说明。

Action的值在Android中有很多预定义,如果你想直接转到你自己定义的Intent接收者,你可以在接收者的IntentFilter中加入一个自定义的Action值(同时要设定Category值为"android.intent.category.DEFAULT"),在你的Intent中设定该值为Intent的Action,就直接能跳转到你自己的Intent接收者中。因为这个Action在系统中是唯一的。

2,data/type,你可以用Uri来做为data,比如Uriuri=Uri.parse(http://www.google.com);

Intenti=newIntent(Intent.ACTION_VIEW,uri);手机的Intent分发过程中,会根据http://www.google.com的scheme判断出数据类型type

手机的Brower则能匹配它,在Brower的Manifest.xml中的IntenFilter中首先有ACTION_VIEWAction,也能处理http:的type。

3,至于分类Category,一般不要去在Intent中设置它,如果你写Intent的接收者,就在Manifest.xml的Activity的IntentFilter中包含android.category.DEFAULT,这样所有不设置Category(Intent.addCategory(Stringc);)的Intent都会与这个Category匹配。

4,extras(附加信息),是其它所有附加信息的集合。使用extras可以为组件提供扩展信息,比如,如果要执行“发送电子邮件”这个动作,可以将电子邮件的标题、正文等保存在extras里,传给电子邮件发送组件。

Java代码packagecom.android.edit_text;

importandroid.app.Activity;

importandroid.content.Intent;

importandroid.os.Bundle;

importandroid.view.KeyEvent;

importandroid.view.View;

importandroid.widget.EditText;

publicclassMyEditTextextendsActivity{

privateTextViewm_TextView;

privateEditTextm_EditText;

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

m_EditText=(EditText)this.findViewById(R.id.EditText01);

m_EditText.setOnKeyListener(editTextKeyListener);

}

privateEditText.OnKeyListenereditTextKeyListener=newEditText.OnKeyListener(){

@Override

publicbooleanonKey(Viewarg0,intarg1,KeyEventarg2){

//action跳转,需要在AndroidManifest.xml中配置action

Intenti=newIntent("android.intent.action.mydialog");

MyEditText.this.startActivity(i);

returnfalse;

}

};

}

复制代码Xml代码<?xmlversion="1.0"encoding="utf-8"?>

<manifestxmlns:android="http://schemas.android.com/apk/res/android"

package="com.android.edit_text"android:versionCode="1"

android:versionName="1.0">

<applicationandroid:icon="@drawable/icon"android:label="@string/app_name">

<activityandroid:name=".MyEditText"android:label="@string/app_name">

<intent-filter>

<actionandroid:name="android.intent.action.MAIN"/>

<categoryandroid:name="android.intent.category.LAUNCHER"/>

</intent-filter>

</activity>

<!--配置跳转activity-->

<activityandroid:name="com.android.dialog.MyDialog">

<intent-filter>

<!--配置action路径-->

<actionandroid:name="android.intent.action.mydialog"/>

<categoryandroid:name="android.intent.category.DEFAULT"/>

</intent-filter>

</activity>

</application>

<uses-sdkandroid:minSdkVersion="7"/>

</manifest>

复制代码第二种方式,用类名跳转。

Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将Intent传递给调用的组件,并完成组件的调用。Intent在这里起着实现调用者与被调用者之间的解耦作用。

Intent传递过程中,要找到目标消费者(另一个Activity,IntentReceiver或Service),也就是Intent的响应者。

Java代码packagecom.Android;

importandroid.app.Activity;

importandroid.content.Intent;

importandroid.os.Bundle;

importandroid.view.View;

importandroid.view.View.OnClickListener;

publicclassFormStuffextendsActivity{

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.formstuff);

finalImageButtonbutton=(ImageButton)findViewById(R.id.android_button);

button.setOnClickListener(newOnClickListener(){

publicvoidonClick(Viewv){

//用类名跳转,需要在AndroidManifest.xml中申明activity

Intentintent=newIntent(FormStuff.this,HelloTabWidget.class);

startActivity(intent);

}

});

}

复制代码Xml代码<?xmlversion="1.0"encoding="utf-8"?>

<manifestxmlns:android="http://schemas.android.com/apk/res/android"

package="com.Android"android:versionCode="1"android:versionName="1.0">

<applicationandroid:icon="@drawable/icon"android:theme="@android:style/Theme.NoTitleBar">

<activityandroid:name=".FormStuff"android:label="@string/app_name">

<intent-filter>

<actionandroid:name="android.intent.action.MAIN"/>

<categoryandroid:name="android.intent.category.LAUNCHER"/>

</intent-filter>

</activity>

<!--申明activity-->

<activityandroid:name="HelloTabWidget"></activity>

</application>

<uses-sdkandroid:minSdkVersion="4"/>

</manifest>

复制代码一些Intent的常用发:

Java代码显示网页

1.Uriuri=Uri.parse("http://google.com");

2.Intentit=newIntent(Intent.ACTION_VIEW,uri);

3.startActivity(it);

显示地图

1.Uriuri=Uri.parse("geo:38.899533,-77.036476");

2.Intentit=newIntent(Intent.ACTION_VIEW,uri);

3.startActivity(it);

4.//其他geoURI範例

5.//geo:latitude,longitude

6.//geo:latitude,longitude?z=zoom

7.//geo:0,0?q=my+street+address

8.//geo:0,0?q=business+near+city

9.//google.streetview:cbll=lat,lng&amp;cbp=1,yaw,,pitch,zoom&amp;mz=mapZoom

路径规划

1.Uriuri=Uri.parse("http://maps.google.com/maps?f=d&amp;saddr=startLatstartLng&amp;daddr=endLatendLng&amp;hl=en");

2.Intentit=newIntent(Intent.ACTION_VIEW,uri);

3.startActivity(it);

4.//wherestartLat,startLng,endLat,endLngarealongwith6decimalslike:50.123456

打电话

1.//叫出拨号程序

2.Uriuri=Uri.parse("tel:0800000123");

3.Intentit=newIntent(Intent.ACTION_DIAL,uri);

4.startActivity(it);

1.//直接打电话出去

2.Uriuri=Uri.parse("tel:0800000123");

3.Intentit=newIntent(Intent.ACTION_CALL,uri);

4.startActivity(it);

5.//用這个,要在AndroidManifest.xml中,加上

6.//&lt;uses-permissionid="android.permission.CALL_PHONE"/&gt;

传送SMS/MMS

1.//调用短信程序

2.Intentit=newIntent(Intent.ACTION_VIEW,uri);

3.it.putExtra("sms_body","TheSMStext");

4.it.setType("vnd.android-dir/mms-sms");

5.startActivity(it);

1.//传送消息

2.Uriuri=Uri.parse("smsto://0800000123");

3.Intentit=newIntent(Intent.ACTION_SENDTO,uri);

4.it.putExtra("sms_body","TheSMStext");

5.startActivity(it);

1.//传送MMS

2.Uriuri=Uri.parse("content://media/external/images/media/23");

3.Intentit=newIntent(Intent.ACTION_SEND);

4.it.putExtra("sms_body","sometext");

5.it.putExtra(Intent.EXTRA_STREAM,uri);

6.it.setType("image/png");

7.startActivity(it);

传送Email

1.Uriuri=Uri.parse("mailto:xxx@abc.com");

2.Intentit=newIntent(Intent.ACTION_SENDTO,uri);

3.startActivity(it);

1.Intentit=newIntent(Intent.ACTION_SEND);

2.it.putExtra(Intent.EXTRA_EMAIL,"me@abc.com");

3.it.putExtra(Intent.EXTRA_TEXT,"Theemailbodytext");

4.it.setType("text/plain");

5.startActivity(Intent.createChooser(it,"ChooseEmailClient"));

1.Intentit=newIntent(Intent.ACTION_SEND);

2.String[]tos={"me@abc.com"};

3.String[]ccs={"you@abc.com"};

4.it.putExtra(Intent.EXTRA_EMAIL,tos);

5.it.putExtra(Intent.EXTRA_CC,ccs);

6.it.putExtra(Intent.EXTRA_TEXT,"Theemailbodytext");

7.it.putExtra(Intent.EXTRA_SUBJECT,"Theemailsubjecttext");

8.it.setType("message/rfc822");

9.startActivity(Intent.createChooser(it,"ChooseEmailClient"));

1.//传送附件

2.Intentit=newIntent(Intent.ACTION_SEND);

3.it.putExtra(Intent.EXTRA_SUBJECT,"Theemailsubjecttext");

4.it.putExtra(Intent.EXTRA_STREAM,"file:///sdcard/mysong.mp3");

5.sendIntent.setType("audio/mp3");

6.startActivity(Intent.createChooser(it,"ChooseEmailClient"));

播放多媒体

Uriuri=Uri.parse("file:///sdcard/song.mp3");

Intentit=newIntent(Intent.ACTION_VIEW,uri);

it.setType("audio/mp3");

startActivity(it);

Uriuri=Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI,"1");

Intentit=newIntent(Intent.ACTION_VIEW,uri);

startActivity(it);


Market相关

1.//寻找某个应用

2.Uriuri=Uri.parse("market://search?q=pname:pkg_name");

3.Intentit=newIntent(Intent.ACTION_VIEW,uri);

4.startActivity(it);

5.//wherepkg_nameisthefullpackagepathforanapplication

1.//显示某个应用的相关信息

2.Uriuri=Uri.parse("market://details?id=app_id");

3.Intentit=newIntent(Intent.ACTION_VIEW,uri);

4.startActivity(it);

5.//whereapp_idistheapplicationID,findtheID

6.//byclickingonyourapplicationonMarkethome

7.//page,andnoticetheIDfromtheaddressbar

1.Uriuri=Uri.fromParts("package",strPackageName,null);

2.Intentit=newIntent(Intent.ACTION_DELETE,uri);

3.startActivity(it);


android常用界面切换效果;

Activity的切换动画指的是从一个activity跳转到另外一个activity时的动画。

{它包括两个部分:

一部分是第一个activity退出时的动画;

另外一部分时第二个activity进入时的动画;

在Android的2.0版本之后,有了一个函数来帮我们实现这个动画。这个函数就是overridePendingTransition

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.SplashScreen);

newHandler().postDelayed(newRunnable(){

@Override

publicvoidrun(){

IntentmainIntent=newIntent(SplashScreen.this,AndroidNews.class);

SplashScreen.this.startActivity(mainIntent);

SplashScreen.this.finish();

overridePendingTransition(R.anim.mainfadein,

R.anim.splashfadeout);

}

},3000);

}

上面的代码只是闪屏的一部分。

getWindow().setWindowAnimations(int);

getWindow().setWindowAnimations(int);

这可没有上个好但是也可以。

实现淡入淡出的效果1

overridePendingTransition(R.anim.splash_screen_fade,R.anim.splash_screen_hold);

实现淡入淡出的效果2

overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);

由左向右滑入的效果

overridePendingTransition(Android.R.anim.slide_in_left,android.R.anim.slide_out_right);

实现zoomin和zoomout,即类似iphone的进入和退出时的效果

overridePendingTransition(R.anim.zoomin,R.anim.zoomout);

overridePendingTransition(R.anim.zoomin,R.anim.zoomout);

新建zoomin.xml文件

<?xmlversion="1.0"encoding="utf-8"?>

<setxmlns:Android="http://schemas.android.com/apk/res/android"

Android:interpolator="@android:anim/decelerate_interpolator">

<scaleAndroid:fromXScale="2.0"android:toXScale="1.0"

Android:fromYScale="2.0"android:toYScale="1.0"

Android:pivotX="50%p"android:pivotY="50%p"

Android:duration="@android:integer/config_mediumAnimTime"/>

</set>

新建zoomout.xml文件

<?xmlversion="1.0"encoding="utf-8"?>

<setxmlns:Android="http://schemas.android.com/apk/res/android"

Android:interpolator="@android:anim/decelerate_interpolator"

Android:zAdjustment="top">

<scaleAndroid:fromXScale="1.0"android:toXScale=".5"

Android:fromYScale="1.0"android:toYScale=".5"

Android:pivotX="50%p"android:pivotY="50%p"

Android:duration="@android:integer/config_mediumAnimTime"/>

<alphaAndroid:fromAlpha="1.0"android:toAlpha="0"

Android:duration="@android:integer/config_mediumAnimTime"/>

</set>

深圳网站制作公司易捷网络科技主营业务:企业网站制作、网站推广优化、企业邮箱申请、域名空间购买、网站备案、论坛网站制作和企业网站维护。网站建设服务热线:13714247375
上一篇企业网站制作技术文章:    企业网站运营推广的方法和问题
下一篇企业网站制作技术文章:    公司网站建设的负载均衡解决方案

深圳网站制作最新案例推荐:

深圳网站制作相关文章阅读
关于我们
公司简介
人才招聘
售后服务
联系我们
网站制作套餐
基本型网站制作套餐
标准型网站制作套餐
品牌型网站制作套餐
综合型网站制作套餐
网站制作教程
网站制作常见问题
网站优化常见问题
企业邮箱常见问题
网站备案常见问题
联系方式
联系人:赵经理
电话:0755-61603557
邮箱:info@qifor.com
手机:13714247375
地址:广东.深圳宝安西乡宝源路鸿源大厦618

微信扫码咨询
深圳市易捷网络科技有限公司版权所有    备案号:粤ICP备12084881号 网站地图XML
QQ在线咨询