版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年肾结石术后护理考试题及答案
- 缫丝工岗中细节管理考核试卷含答案
- 殡仪服务员工作水平模拟考核试卷含答案
- 2026年三支一扶护理专业知识《基础护理》押题试卷
- 2026年教师资格证综合素质历年真题汇编及详解
- 甲烷合成气净化工岗位技术传承考核试卷含答案
- 2026年陕西省国家工作人员学法用法考试应知应会题库(含答案)
- 2026年体育教育专业体育保健学全真模拟试卷运动损伤处理训练卷
- 2026年事业单位考试公共基础《公文写作》专项训练试卷
- 2026年人工智能青少年创新能力知识竞赛题(附答案)
- 小儿脓毒症课件
- 手术室静脉血栓栓塞症预防与护理专家共识
- GB/T 18166-2025架空游览车类游乐设施通用技术条件
- 《四川省预拌混凝土及砂浆企业试验室技术标准》
- 6-29-02-09 国家职业标准水运工程施工工(试行) (2025年版)
- 2025年上海咖啡消费趋势报告
- 水利工程施工单位技术员、资料员做施工资料指南
- 《绿化市容专用轮式作业机具作业性能与安全要求》
- 第45届世界技能大赛福建省选拔赛美容项目评分表
- 第3讲矿石管理
- 旅行社员工培训指南
评论
0/150
提交评论