Android 动画AlphaAnimation类方法

本文详细介绍如何在Android中使用AlphaAnimation实现图片的透明度渐变效果,包括动画的创建、配置及事件监听等关键步骤。
部署运行你感兴趣的模型镜像

当我们打开应用时,出现在我们眼前的是一张渐变图片。此图可以是应用欢迎图片,也可以广告海报(服务可以推送广告),就是用到了动画AlphaAnimation完成的。

public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
image = (ImageView) findViewById(R.id.main_img); 
start = (Button) findViewById(R.id.main_start); 
cancel = (Button) findViewById(R.id.main_cancel); 
/** 设置透明度渐变动画 */ 
final AlphaAnimation animation = new AlphaAnimation(1, 0); 
animation.setDuration(2000);//设置动画持续时间 
/** 常用方法 */ 
//animation.setRepeatCount(int repeatCount);//设置重复次数 
//animation.setFillAfter(boolean);//动画执行完后是否停留在执行完的状态 
//animation.setStartOffset(long startOffset);//执行前的等待时间 
start.setOnClickListener(new OnClickListener() { 
public void onClick(View arg0) { 
image.setAnimation(animation); 
/** 开始动画 */ 
animation.startNow(); 
} 
}); 
cancel.setOnClickListener(new OnClickListener() { 
public void onClick(View v) { 
/** 结束动画 */ 
animation.cancel(); 
} 
}); 
} 

一、所使用的技术:AlphaAnimation动画
1.官方描述:
An animation that controls the alpha level of an object. Useful for fading things in and out. This animation ends up changing the alpha property of a Transformation
即:控制对象alpha水平的动画。这个动画可以通过改变alpha属性,达到渐进渐出的效果。

2.构造方法:AlphaAnimation(float fromAlpha, float toAlpha)
官方解释:Constructor to use when building an AlphaAnimation from code
即:使用代码实现渐变动画
如:AlphaAnimation(0.01f, 1.0f); 从0.01f到1.0f渐变。学过flash的,应该对alpha值很了解,0.0是完全透明,1.0完全不透明。

二、动画的实现

1.实例化对象

AlphaAnimation anim = new AlphaAnimation(0.01f, 1.0f);

2.设置动画持续时长(两秒)

anim.setDuration(2000);

3.添加事件监听

anim.setAnimationListener(new Animation.AnimationListener() {

    @Override
    public void onAnimationStart(Animation animation) {    
    }

    @Override
    public void onAnimationRepeat(Animation animation) {    
    }

    @Override
    public void onAnimationEnd(Animation animation) {
        //渐变动画结束后,执行此方法,跳转到主界面    
    }
});

4.为控件绑定动画效果

imageView.setAnimation(anim);

5.开始动画
anim.start();

看到上面两个地方开始动画的方法不一样,现在好像android里面已经有一个新的方法
 public void startAnimation(Animation animation) {
        animation.setStartTime(Animation.START_ON_FIRST_FRAME);
        setAnimation(animation);
        invalidateParentCaches();
        invalidate(true);
    }

您可能感兴趣的与本文相关的镜像

PyTorch 2.6

PyTorch 2.6

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

Android 开发中,若需要判断 `AlphaAnimation` 动画何时结束,可以通过为动画设置 `AnimationListener` 来监听动画的结束事件。具体实现方法是使用 `setAnimationListener()` 方法为动画添加一个监听器,并在该监听器中重写 `onAnimationEnd()` 方法,以执行动画结束时所需的逻辑操作[^1]。 以下是一个实现示例: ```java AlphaAnimation alphaAnimation = new AlphaAnimation(0.0f, 1.0f); alphaAnimation.setDuration(1000); // 设置动画时长为1000毫秒 // 添加动画监听器 alphaAnimation.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { // 动画开始时的操作 } @Override public void onAnimationRepeat(Animation animation) { // 动画重复时的操作 } @Override public void onAnimationEnd(Animation animation) { // 动画结束时的操作 // 例如:显示一个Toast提示 Toast.makeText(getApplicationContext(), "AlphaAnimation 动画结束", Toast.LENGTH_SHORT).show(); } }); // 启动动画 imageView.startAnimation(alphaAnimation); ``` 在上述代码中,`AlphaAnimation` 从透明度 `0.0f` 变化到 `1.0f`,表示从完全透明过渡到完全不透明。通过 `setDuration()` 方法设置了动画的持续时间,并通过 `setAnimationListener()` 添加了监听器。在 `onAnimationEnd()` 方法中可以执行动画结束后需要的操作,例如提示用户动画已完成。 若需要兼容旧版本的 Android 系统,可以考虑使用 NineOldAndroids 库中的 `ViewPropertyAnimator` 来简化属性动画的操作[^2]。 ### 动画原理说明 `AlphaAnimation` 是 Android 中 View 动画的一部分,它通过修改 View 的透明度来实现动画效果。动画的执行过程会触发一系列回调,包括开始、重复和结束事件。`onAnimationEnd()` 是动画结束时触发的回调,适用于需要在动画完成后执行某些操作的场景[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值