Android TransitionDrawable:过渡动画Drawable
2024-08-30 01:05:35
Android TransitionDrawable实现一种可以用动画表示的Drawable。写一个例子。
package zhangphil.app; import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.TransitionDrawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ImageView; public class MainActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //定义一个过渡drawable数组,最后一个drawable:drawables[n-1]是最终的显示形式
//第一个是开始
Drawable[] drawables=new Drawable[]{new ColorDrawable(Color.TRANSPARENT),new ColorDrawable(Color.RED)};
TransitionDrawable td=new TransitionDrawable(drawables); ImageView image = (ImageView) findViewById(R.id.imageView);
image.setImageDrawable(td); //交叉淡入样式
td.setCrossFadeEnabled(true); //开始执行动画,从设定的时间内,缓慢的从TransitionDrawable构造时候的数组第一个drawable(drawables[0])渐变成最后数组最后一个drawable(drawables[n-1])
//动画执行结束后,最终显示的是最后一个drawables[n-1]
td.startTransition(500);
}
}
如果要用xml实现TransitionDrawable,需要在drawable目录下新建一个xml代码文件,比如transition.xml,代码:
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/transparent" />
<item android:drawable="@android:color/holo_red_dark"/>
</transition>
上层Java代码变成:
TransitionDrawable transition = (TransitionDrawable)getResources().getDrawable(R.drawable.transition);
ImageView image = (ImageView) findViewById(R.id.imageView);
image.setImageDrawable(transition); transition.setCrossFadeEnabled(true);
transition.startTransition(500);
最新文章
- 体验Visual Studio 2015 Windows Forms应用程序开发与维护
- NDK学习二: NDK目录结构
- Nexus配置
- hdu 2094 产生冠军
- Java实战之04JavaWeb-04JSP、EL表达式、JSTL标签库
- 《Java程序猿面试笔试宝典》之Java与C/C++有什么异同
- [SDOI2014]旅行
- 全面了解TCP/IP到HTTP
- SNAT/DNAT
- Unity3D架构设计NavMesh寻路
- Java设计模式学习记录-单例模式
- vue复选框选中值获取
- 一图看懂hadoop MapReduce工作原理
- Java 程序内存分析
- LightOJ 1096 - nth Term 矩阵快速幂
- spoj1811 LCS - Longest Common Substring
- mysql数据库(二):查询(SELECT)
- lzugis—搭建属于自己的小型的版本控制SVN
- AWS CentOS7 实例修改主机名
- 记录一下今天犯得错误,public static function init()写成了public function initialize()