❶ 如何通过android实现alpha渐变动画效果
Android动画分为四种:alpha(渐变透明度),scale(渐变尺寸伸缩),translate(画面转换位置移动),rotate(画面转移旋转);今天先写第一个动画alpha。
动画效果有两种实现:
一、在xml中定义:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 透明度控制动画效果 alpha
浮点型值:
fromAlpha 属性为动画起始时透明度
toAlpha 属性为动画结束时透明度
说明:
0.0表示完全透明
1.0表示完全不透明
以上值取0.0-1.0之间的float数据类型的数字
长整型值:
ration 属性为动画持续时间
说明:
时间以毫秒为单位
-->
<alpha
android:fromAlpha="0.1"
android:toAlpha="1.0"
android:ration="5000"
/>
</set>
二、在页面Activity中声明:
Animation animation = new AlphaAnimation(0.1f, 1.0f);
animation.setDuration(5000);
完成动画渐变透明度的参数设定后,我们就要开始在应用中使用它:
public class SplashActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome);
View view = View.inflate(SplashActivity.this, R.layout.welcome, null);
setContentView(view);
//动画效果参数直接定义
Animation animation = new AlphaAnimation(0.1f, 1.0f);
animation.setDuration(5000);
//动画效果从XMl文件中定义
// Animation animation = AnimationUtils.loadAnimation(this, R.anim.alpha);
view.setAnimation(animation);
}
}
这样我们就完成了预定的动画效果,但是我们的最终目的是动画效果完毕以后跳转到相应的页面,所以我们对动画添加了监听:
animation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
Intent intent = new Intent(SplashActivity.this,MainActivity.class);
startActivity(intent);
}
});
这样的话,我们在动画的持续时间中预加载我们的资源,当动画结束以后跳转到我们的主页面;
详细步骤和完整源码可以参考:http://www.cnblogs.com/sishuiliuyun/p/3167581.html
❷ android 怎样设置控件消失时的动画
l)
第一步:首先在xml布局文件中设置该控件为Android:visibility="gone"。
第二步:在代码中配置两个Animation
[java] view plain
alphaAnimation appearAnimation = new AlphaAnimation(0, 1);
appearAnimation.setDuration(500);
disappearAnimation = new AlphaAnimation(1, 0);
disappearAnimation.setDuration(500
❸ android 4.0.3 版本怎么关闭淡入淡出的动画效果啊
手机设置 声音和显示 把动画效果关了就ok了
❹ Android 跑马灯左右滚动时字体的渐隐效果怎么去掉
你可以用过xml设置android:marqueeRepeatLimit="marquee_forever"来设置跑马灯显示次数,marquee_forever表示不间断无限次,也可以通过代码tv.setMarqueeRepeatLimit(1);设置次数
❺ android 怎么样让textview显示隐藏带动画效果简书
可以通过setAnimator()来设置自定义的动画。
ViewGroup container = (ViewGroup) findViewById(R.id.container);
LayoutTransition transition = new LayoutTransition();
container.setLayoutTransition(transition);
此外还有一个更简单地使用方法,在xml文件中我们在容器的中下面一句代码:
android:animateLayoutChanges="true"
在4.1 JellyBean上还有一个增强的功能,可以在容器内的子view的layout发生变化时也播放动画,用法如下。
LayoutTransition transition = container.getLayoutTransition();
transition.enableTransitionType(LayoutTransition.CHANGING);
❻ android属性动画怎么渐变
3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中又引入了一个新的动画系统:property animation,这三种动画模式在SDK中被称为property animation,view animation,drawable animation。?
1. View Animation(Tween Animation)
View Animation(Tween Animation):补间动画,给出两个关键帧,通过一些算法将给定属性值在给定的时间内在两个关键帧间渐变。
View animation只能应用于View对象,而且只支持一部分属性,如支持缩放旋转而不支持背景颜色的改变。
而且对于View animation,它只是改变了View对象绘制的位置,而没有改变View对象本身,比如,你有一个Button,坐标 (100,100),Width:200,Height:50,而你有一个动画使其变为Width:100,Height:100,你会发现动画过程中触 发按钮点击的区域仍是(100,100)-(300,150)。
View Animation就是一系列View形状的变换,如大小的缩放,透明度的改变,位置的改变,动画的定义既可以用代码定义也可以用XML定义,当然,建议用XML定义。
可以给一个View同时设置多个动画,比如从透明至不透明的淡入效果,与从小到大的放大效果,这些动画可以同时进行,也可以在一个完成之后开始另一个。
用XML定义的动画放在/res/anim/文件夹内,XML文件的根元素可以 为<alpha>,<scale>,<translate>,<rotate>,interpolator 元素或<set>(表示以上几个动画的集合,set可以嵌套)。默认情况下,所有动画是同时进行的,可以通过startOffset属性设置 各个动画的开始偏移(开始时间)来达到动画顺序播放的效果。
可以通过设置interpolator属性改变动画渐变的方式,如AccelerateInterpolator,开始时慢,然后逐渐加快。默认为。
❼ android View设置隐藏动画问题
mAppHiddenAction.setDuration(400);
mAppGridView.startAnimation(mHiddenAction);
scrollView.startAnimation(mAppHiddenAction);
relativelayout.startAnimation(mAppHiddenAction);
后面这些代码应该在mAppHiddenAction结束后再执行,而不是直接在这就执行,你可用hander+定时器延后执行即可
scrollView.setVisibility(View.GONE);
mAppGridView.setVisibility(View.GONE);
tv.setVisibility(View.GONE);
btn_save.setVisibility(View.GONE);
❽ android 渐隐动画 怎么还原
一般地,在不同的关键帧上的元素属性是独立的,改变任何一个关键帧的元素属性将不会对其他帧的元素属性.
你的情况发生,有可能是下列问题的导致:
1.没有在关键帧上改变元素属性,请注意你选中的"后面关键帧"是否真的是一个关键帧,异或只是一个帧.
2.改变的不是元素的属性,而是元素的内容,即是说,你在调整透明度时打开了元素进行编辑,这样将会关联所有的元素实例(包括前一关键帧的元素)
3.如果使用图形而不是元件作为渐变对象,请使用"形状渐变"而不是"动作渐变".否则,系统将自动将其中一帧的图形变作元件.
❾ 知识体系四:Android动画工作原理
1.Android 动画的工作原理?
在android系统中动画分为两种分别是帧动画和属性动画。对于动画的工作原理主要涉及到的是帧动画的实现。
帧动画主要有旋转RotatleAnimation,缩放ScaleAnimation,透明AlphaAnimation,平移TranslateAnimation等都是Animation的子类。Animation控制动画的效果,Transformation 对动画进行计算。
对于动画的原理简单说就是从一个动画的启动状态,到动画结束状态,和动画持续总时间,在这段时间中任一时间点动画的状态计算和显示的过程。
计算 :是通过Animation的getTransformation()方法首先对时间进行归一化时间让时间在0~1之间,进行计算。满足条件之后就会调用applyTransformation()方法处理实现动画类型的计算。当前时间点的转换状态保存到Transformation 的Matrix中等待显示的时候使用。
显示 :动画显示工作主要依赖于Choreograther类,此类是线程唯一的,Choreograther和Handler用法类似,都是通过post一个Runnable对象到队列中等待VSYSC屏幕垂直同步信号刷新(16ms)刷新一次,然后触发ViewRootImpl的view的遍历工作,回调到view.draw()方法时就会把之前applyTransformation 计算的此时刻的Transformation 的Matrix赋值到Canvas上, 这也就是为什么我们使用帧动画时候我们的view的属性并没有改变,这就是根源因为计算得到的Matrix被Canvas使用了,并没有直接赋值到我们的view上。 对于属性动画来说主要使用animator实现看下面解析:
2.Animation 和 Animator 的区别?
Animation和Animator都是抽象类,都有子类,Animation通过Transformation对动画进行Matrix转换来作用到Canvas上实现动画效果。而Animator只是一个工具类,主要是用来控制在一段时间内某一个值的变化过程,然后我们再根据这个值来作用到view的属性上,以此来实现动画效果。为了让这个变化的过程能达到加速减速等变化效果系统提供了插值器Interpolator。他们的实现思想都是一致的。
3.帧动画 和 属性动画的区别?