- 浏览: 465368 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
wwwjiandan:
我现在遇到的问题是将Activity设置为非全屏,且andro ...
Android中软键盘弹出时底部菜单上移问题 -
zjhdreams:
求下载链接
Android 9Patch (NinePatch) -
wtjandjay:
受教了 .......
从程序员到项目经理 -
mr_zhang2011:
将博客搬至CSDN -
fyc0109:
为什么我传过去的值, 有的都不对呢, 顺序也是一样的.就是获得 ...
Android Parcelable序列化自定义类集合在Activity间传递
Android动画详细探究
转载:http://www.cnblogs.com/salam/archive/2010/10/05/1842935.html
附件实例包括:animation,AutoComplete,chronometer,时间日期,Elview,画廊,Grid,ImageSwitcher,RatingBar,SeekBar,PragressBar,Spinner
Animation是一个用于View,Surfaces和其它对象实现动画效果的抽象类,
其中常用的类是TranslateAnimation用于控制位置的改变
以下列出一些重要的属性和方法
Xml属性
android:duration:运行动画的时间
android:interpolator:定义用于平滑动画运动的时间内插
android:repeatCount:定义动画重复的时间
方法:
set:RepeatCount(int ):定义动画重复的时间
setRepeatMode(int):通过设置重复时间定义动画的行为
setStartOffset(long):以毫秒为单位的动画运行前的延迟,一旦开始时间就达到了
Cancel():取消动画
hasStarted():判断动画是否已在运行
initialize(int width, int height, int parentWidth, int parentHeight):初始化动画
reset():重置动画
Start()启动动画
其中还有一些常量
RESTART:重新运行
INFINITE:永无终止地运行
将动画用于指定的控件,所有继承自View的控件都有startAnimation(Animation)方法,通过调用此方法来应用动画于控件
AnimationUtils类介绍
为应用动画提供了通用的的方法,它有一个很重要的方法loadAnimation(Context,Animation)用于加载Animation的实例。
下面是一个实例 源码见附件:
Animationpage.xml是布局文件
Animlayout.xml是动画文件
主程序
package wjq.WidgetDemo;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.Transformation;
import android.view.animation.TranslateAnimation;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.ViewFlipper;
import android.widget.AdapterView.OnItemSelectedListener;
/**
* 动画Animation示例
* @author 记忆的永恒
*/
public class AnimationDemo extends Activity implements OnClickListener,OnItemSelectedListener {
private View v;
private String[] mStrings = { "向上", "向右", "穿越","旋转" };
private static final String[] INTERPOLATORS = { "加速", "Decelerate","减速", "左右", "Overshoot","Anticipate/Overshoot", "弹回" };
private ViewFlipper mFlipper;
private Spinner spinner;
private Spinner spinner1;
private ArrayAdapter aa;
private ArrayAdapter aa1;
/*
* (non-Javadoc)
*
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.animationpage);
v = findViewById(R.id.login);
v.setOnClickListener(this);
mFlipper = (ViewFlipper) findViewById(R.id.flipper);
// 反转
mFlipper.startFlipping();
spinner = (Spinner) findViewById(R.id.spinner);
aa = new ArrayAdapter(this,
android.R.layout.simple_spinner_item, mStrings);
aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(aa);
spinner.setOnItemSelectedListener(this);
spinner1 = (Spinner) findViewById(R.id.spinner1);
aa1 = new ArrayAdapter(this,
android.R.layout.simple_spinner_item, INTERPOLATORS);
aa1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(aa1);
spinner1.setOnItemSelectedListener(this);
}
@Override
public void onClick(View v) {
Animation shake = AnimationUtils.loadAnimation(this, R.anim.animlayout);
findViewById(R.id.pw).startAnimation(shake);
}
@Override
public void onItemSelected(AdapterView> parent, View view, int position,
long id) {
if (parent.getAdapter()==aa) {
switch (position) {
case 0:
mFlipper.setInAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_up_in));
mFlipper.setOutAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_up_out));
break;
case 1:
mFlipper.setInAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_left_in));
mFlipper.setOutAnimation(AnimationUtils.loadAnimation(this,
R.anim.push_left_out));
break;
case 2:
mFlipper.setInAnimation(AnimationUtils.loadAnimation(this,
android.R.anim.fade_in));
mFlipper.setOutAnimation(AnimationUtils.loadAnimation(this,
android.R.anim.fade_out));
break;
default:
mFlipper.setInAnimation(AnimationUtils.loadAnimation(this,
R.anim.hyperspace_in));
mFlipper.setOutAnimation(AnimationUtils.loadAnimation(this,
R.anim.hyperspace_out));
break;
}
}
else {
final View target = findViewById(R.id.target);
final View targetParent = (View) target.getParent();
Animation anm = new TranslateAnimation(0.0f, targetParent
.getWidth()
- target.getWidth()
- targetParent.getPaddingLeft()
- targetParent.getPaddingRight(), 0.0f, 0.0f);
anm.setDuration(1000);
anm.setStartOffset(300);
anm.setRepeatMode(Animation.RESTART);
anm.setRepeatCount(Animation.INFINITE);
switch (position) {
case 0:
anm.setInterpolator(AnimationUtils.loadInterpolator(this,
android.R.anim.accelerate_interpolator));
break;
case 1:
anm.setInterpolator(AnimationUtils.loadInterpolator(this,
android.R.anim.decelerate_interpolator));
break;
case 2:
anm.setInterpolator(AnimationUtils.loadInterpolator(this,
android.R.anim.accelerate_decelerate_interpolator));
break;
case 3:
anm.setInterpolator(AnimationUtils.loadInterpolator(this,
android.R.anim.anticipate_interpolator));
break;
case 4:
anm.setInterpolator(AnimationUtils.loadInterpolator(this,
android.R.anim.overshoot_interpolator));
break;
case 5:
anm.setInterpolator(AnimationUtils.loadInterpolator(this,
android.R.anim.anticipate_overshoot_interpolator));
break;
case 6:
anm.setInterpolator(AnimationUtils.loadInterpolator(this,
android.R.anim.bounce_interpolator));
break;
}
target.startAnimation(anm);
}
}
@Override
public void onNothingSelected(AdapterView parent) {
// TODO Auto-generated method stub
}
}
- WidgetDemo.rar (2.3 MB)
- 下载次数: 42
发表评论
-
android Log.isLoggable方法的使用
2014-06-06 15:35 3006android 动态控制logcat日志开关,通过Log. ... -
View not attached to window manager
2013-01-10 11:55 1081View not attached to window man ... -
代码设置android:icon,android:label
2013-01-05 15:26 7998requestWindowFeature( Window.F ... -
Android项目为一个apk设置多个ICON图标和执行入口
2013-01-05 12:13 3881Android开发中,一个工程对应一个AndroidManif ... -
Intent跳转到系统应用中的拨号界面、联系人界面、短信界面及其他
2012-12-04 12:15 01:调用系统发送短信界面 Uri smsT ... -
Android 源码目录结构详解
2012-11-22 17:20 1470这是Android2.1的源代码的 ... -
如何获取android源代码
2012-07-10 17:50 2742如何获取android源代码 研究 ... -
Android uses-permission大全
2012-06-12 17:33 1072android.permission.ACCESS_CHE ... -
Android 应用程序基础(Application Fundamentals)
2012-05-23 17:42 1272Android 应用程序基础(Application Fun ... -
转Android 音乐频谱实现
2012-02-18 23:35 0最近由于需要实现音乐频谱,所以今天就为大家普及一下。 这里实现 ... -
android VideoView本工程mp4文件
2012-01-09 18:42 2707最近在做一个demo,要求播放视频,记录一下。使用的是Vid ... -
关于android播放mp3与歌词同步问题收集
2012-01-09 17:57 1691关于android播放mp3与歌词同步问题收集,有时间再试。 ... -
android使用MediaPlayer播放音乐文件时遇到的问题
2012-01-09 17:38 18386把mp3文件放在Assets文件夹里,然后用MediaPlay ... -
android资源目录---assets与res/raw的不同
2012-01-05 11:49 2382android资源目录---assets与 ... -
Android 的cpu硬盘 内存 网络设置 系统信息 硬件信息
2012-01-04 10:56 1621转载 http://www.cnmsdn.com/html/2 ... -
使用 Android Compatibility Package 来简化开发工作
2012-01-04 10:12 1436转载 http://www.cnmsdn.com/html/2 ... -
Android 9Patch (NinePatch)
2011-12-26 16:06 45411:介绍 NinePatch图片以*.9.png结尾,和普通 ... -
Windows平台下Android源码的下载
2011-12-21 11:06 1263Windows平台下Android源码的下载 ... -
改变MenuItem默认背景
2011-12-07 19:58 1447@Override public boolean onCre ... -
Android横屏竖屏切换
2011-11-10 18:20 107转载 http://blog.csdn.net/leesido ...
相关推荐
移动互联网应用
智能家居系统应用
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools=...
`ImageSwitcher` 是Android SDK提供的一种用于在两个视图之间切换的控件,非常适合用来实现图片轮播效果。在这个"安卓图片轮播广告轮播自动滚屏相关-ImageSwitcher.zip"压缩包中,包含了可能与实现这一功能相关的...
- **ImageSwitcher**:用于快速切换图片的控件。 - **TextSwitcher**:用于快速切换文本内容的控件。 - **TabHost**、**TabWidget**、**TabActivity**:这三个控件共同组成 Tab 布局,其中 `TabHost` 作为容器,`...
这个"Android高级应用源码-Gallery+ImageSwitcher+ViewFlipper实现手机查看壁纸效果.zip"的压缩包提供了一个很好的实例,展示了如何利用Gallery、ImageSwitcher和ViewFlipper组件来实现这一功能。下面我们将深入探讨...
在Android开发中,`Gallery`和`ImageSwitcher`是两个非常实用的UI组件,用于创建滑动浏览图片的应用场景。本教程将介绍如何将这两个控件结合起来,以实现一个简单但功能完整的图片浏览器。 首先,`Gallery`控件是一...
智能家居系统 图片切换ImageSwitcher.doc 学习资料 复习资料 教学资源
在Android开发中,ImageSwitcher是一个非常实用的UI组件,主要用于在两个ImageView之间进行平滑切换,常用于图片轮播或者加载前后效果对比等场景。本实例将深入探讨如何使用和自定义ImageSwitcher,以及它在实际项目...
在本实例中,我们将深入探讨如何在Android应用中使用ImageSwitcher来实现实时更换图片的功能。 首先,ImageSwitcher继承自ViewSwitcher,ViewSwitcher是Android提供的一个可以切换不同视图的容器,它可以在两个子...
在壁纸应用中,ViewFlipper可能用于在不同的ImageSwitcher实例间切换,从而实现多页壁纸预览的效果。 实现步骤: 1. **设置布局**:首先在XML布局文件中添加Gallery和ImageSwitcher。Gallery作为主视图,用于显示...
在Android开发中,`Gallery`控件和`ImageSwitcher`是两个非常有用的组件,尤其在创建图片轮播或相册应用时。本篇文章将详细解释如何将它们结合起来使用,以实现一个简单的图片浏览功能。 `Gallery`是Android提供的...
【Android中的ImageSwitcher组件详解】 在Android应用开发中,我们常常需要实现图片的动态切换效果,例如在轮播图、广告栏等场景。ImageSwitcher就是为了解决这一需求而设计的一个视图组件,它提供了平滑过渡的动画...
在这个简单的`ImageSwitcher`实例中,我们将深入探讨如何在Android应用程序中有效地使用它。 首先,我们需要了解ImageSwitcher的基本概念。ImageSwitcher继承自ViewSwitcher,它本身是一个可以显示两个视图并能在这...
在Android开发中,ImageSwitcher是一个非常有用的组件,它用于在两个ImageView之间切换显示图片,通常用于实现动画效果,比如在用户向导或幻灯片展示中。本教程将详细介绍如何在Android应用中使用ImageSwitcher来...
"ImageSwitcher"是Android开发中的一个组件,主要用于在多个图像之间进行切换,常用于实现类似轮播图或图片预览的功能。这个组件是Android SDK的一部分,属于View类的子类,提供了便捷的方式来展示和切换一系列的...
<alpha xmlns:android="http://schemas.android.com/apk/res/android" android:duration="500" android:fromAlpha="0.0" android:toAlpha="1.0" /> <!-- fade_out.xml --> <alpha xmlns:android=...
在代码中,我们可以通过找到这个ID来实例化`ImageSwitcher`。例如: ```xml <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app=...
在Android开发中,`Gallery`和`ImageSwitcher`是两个关键的UI组件,它们主要用于展示和交互图像。本文将深入探讨这两个组件的功能、用法以及如何在实际应用中实现图片的浏览效果。 首先,`Gallery`组件是Android...