版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度书画展览服务合同3篇
- 土壤检测公司转让合同
- 六安职业技术学院《C++语言程序设计》2023-2024学年第一学期期末试卷
- 2024版广告宣传代理委托合同范本2篇
- Unit 1 Friendship Experiencing and understanding language Reading教学实录-2024-2025学年沪教版(2024)英语七年级上册
- 临沂职业学院《过程建模与系统辨识》2023-2024学年第一学期期末试卷
- 4 地球-我们的家园-《环境问题敲响了警钟》 (教学实录)统编版道德与法治六年级下册
- 2024年度家居设计装修合作合同6篇
- 旅游运输大巴车出租协议书
- (2024年秋季版)七年级道德与法治下册 第三单元 在集体中成长 第八课 美好集体有我在 第2框 我与集体共成教学实录 新人教版
- 出租房屋安全检查制度模版(2篇)
- 《森林防火安全教育》主题班会 课件
- 漏洞修复策略优化
- 乘风化麟 蛇我其谁 2025XX集团年终总结暨颁奖盛典
- 车间生产现场5S管理基础知识培训课件
- 2024年同等学力申硕英语考试真题
- 文书模板-《公司与村集体合作种植协议书》
- 码头安全生产知识培训
- 《死亡诗社》电影赏析
- JJF(京) 105-2023 网络时间同步服务器校准规范
- 老年科护理查房护理病历临床病案
评论
0/150
提交评论