【移动应用开发技术】Android中如何使用界面切换效果库_第1页
【移动应用开发技术】Android中如何使用界面切换效果库_第2页
【移动应用开发技术】Android中如何使用界面切换效果库_第3页
【移动应用开发技术】Android中如何使用界面切换效果库_第4页
【移动应用开发技术】Android中如何使用界面切换效果库_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】Android中如何使用界面切换效果库

Android中如何使用界面切换效果库,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。界面或者板块的切换是Android应用中非常常见的一个功能,同时也谈谈自己对“Android模块化编程”的一些想法与对自定义Android界面切换效果库的使用。希望大家能通过对界面切换效果库的研究和思考,总结出一套自己的常用功能类库的开发思路。界面切换效果库Demo项目的源码(ShiftEffect.zip)可以点击“此处下载”。将解压后的项目源码(ShiftEffect)导入到Eclipse中就可以看到这个Demo项目的代码结构了(如下图)。首先,在模拟器上运行项目代码。可以看到,界面切换效果库的Demo为大家提供了比较丰富的选项,如下图所示;我们可以随意选择切换的内容(文字、图片)、切换的渐变时间、切换的停顿时间以及丰富切换的效果(滚动切换、旋转渐变、大小渐变等)。下图所示的就是图片切换的效果,大家还可以尝试各种切换的效果,我们可以看到效果还是很流畅的。界面切换效果库位于ShiftEffect项目的libs目录下,即plugs-effect.jar。该效果库的使用范例都在com.example.scrolleffect包目录下的MainActivity.java文件中,使用方法在代码注释中都已经写的非常清楚了,如下参考。public

class

MainActivity

extends

Activity

implements

OnItemSelectedListener

{

//

展示渐变动效的容器,用于容纳渐变效果库的View控件

private

LinearLayout

container;

//

渐变效果库的View控件类

private

EffectView

mView;

//

文字资源(用于展示渐变切换)

private

String[]

mTexts

=

{

"今日新闻1",

"今日新闻2",

"今日新闻3"

};

//

图片资源(用于展示渐变切换)

private

int[]

mImages

=

{

R.drawable.image_1,

R.drawable.image_2,

R.drawable.image_3

};

//

切换内容选项

private

Spinner

sp1;

private

ArrayAdapter<String>

aa1;

private

String[]

menu1

=

{

"内容:文字",

"内容:图片"

};

//

切换渐变时间选项

private

Spinner

sp2;

private

ArrayAdapter<String>

aa2;

private

String[]

menu2

=

{

"动时:300ms",

"动时:1000ms",

"动时:3000ms"

};

//

切换渐变停顿选项

private

Spinner

sp3;

private

ArrayAdapter<String>

aa3;

private

String[]

menu3

=

{

"停时:3000ms",

"停时:5000ms",

"停时:10000ms"

};

//

切换渐变效果选项

private

Spinner

sp4;

private

ArrayAdapter<String>

aa4;

private

String[]

menu4

=

{

"动效:向上",

"动效:向下",

"动效:向左",

"动效:向右",

"动效:旋转",

"动效:大小",

"动效:渐变"

};

@Override

public

void

onCreate(Bundle

savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//

初始化展示动效的容器

container

=

(LinearLayout)

this.findViewById(R.id.container);

//

初始化各个选项的内容

sp1

=

(Spinner)

findViewById(R.id.spinner1);

aa1

=

new

ArrayAdapter<String>(this,

android.R.layout.simple_spinner_item,

menu1);

aa1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

sp1.setAdapter(aa1);

sp1.setOnItemSelectedListener(this);

sp2

=

(Spinner)

findViewById(R.id.spinner2);

aa2

=

new

ArrayAdapter<String>(this,

android.R.layout.simple_spinner_item,

menu2);

aa2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

sp2.setAdapter(aa2);

sp2.setOnItemSelectedListener(this);

sp3

=

(Spinner)

findViewById(R.id.spinner3);

aa3

=

new

ArrayAdapter<String>(this,

android.R.layout.simple_spinner_item,

menu3);

aa3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

sp3.setAdapter(aa3);

sp3.setOnItemSelectedListener(this);

sp4

=

(Spinner)

findViewById(R.id.spinner4);

aa4

=

new

ArrayAdapter<String>(this,

android.R.layout.simple_spinner_item,

menu4);

aa4.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

sp4.setAdapter(aa4);

sp4.setOnItemSelectedListener(this);

}

@Override

public

boolean

onCreateOptionsMenu(Menu

menu)

{

getMenuInflater().inflate(R.menu.activity_main,

menu);

return

true;

}

@Override

public

void

onItemSelected(AdapterView<?>

parent,

View

view,

int

position,

long

id)

{

//

选择切换内容选项(可选择滚动文字或者图片)

if

(parent.getAdapter()

==

aa1)

{

container.removeAllViews();

switch

(position)

{

case

0:

//

初始化文字切换View对象

mView

=

EffectUtil.fillTexts(this,

EffectView.ANI_UP,

30,

mTexts);

container.addView(mView);

mView.start();

break;

default:

mView

=

EffectUtil.fillImages(this,

EffectView.ANI_UP,

mImages);

container.addView(mView);

mView.start();

break;

}

}

//

选择切换渐变时间选项

if

(parent.getAdapter()

==

aa2)

{

switch

(position)

{

case

0:

mView.setDuration(300);

break;

case

1:

mView.setDuration(1000);

break;

default:

mView.setDuration(3000);

break;

}

}

//

选择切换渐变间隔选项

if

(parent.getAdapter()

==

aa3)

{

switch

(position)

{

case

0:

mView.setInterval(3000);

break;

case

1:

mView.setInterval(5000);

break;

default:

mView.setInterval(10000);

break;

}

}

//

选择切换渐变效果选项

if

(parent.getAdapter()

==

aa4)

{

switch

(position)

{

case

0:

mView.setAnimation(EffectView.ANI_UP);

//

往上滚动

break;

case

1:

mView.setAnimation(EffectView.ANI_DOWN);

//

往下滚动

break;

case

2:

mView.setAnimation(EffectView.ANI_LEFT);

//

往左滚动

break;

case

3:

mView.setAnimation(EffectView.ANI_RIGHT);

//

往右滚动

break;

case

4:

mView.setAnimation(EffectView.ANI_ROTATE);

//

旋转渐变

break;

case

5:

mView.setAnimation(EffectView.ANI_SCALE);

//

大小渐变

break;

default:

mView.setAnimation(EffectView.ANI_FADE);

//

消失渐变

break;

}

}

}

@Overridek

public

void

onNothingSelected(AdapterView<?>

parent)

{

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论