Android TransitionDrawable实现一种可以用动画表示的Drawable。写一个例子。

  1. package zhangphil.app;
  2.  
  3. import android.graphics.Color;
  4. import android.graphics.drawable.ColorDrawable;
  5. import android.graphics.drawable.Drawable;
  6. import android.graphics.drawable.TransitionDrawable;
  7. import android.os.Bundle;
  8. import android.support.v7.app.AppCompatActivity;
  9. import android.widget.ImageView;
  10.  
  11. public class MainActivity extends AppCompatActivity {
  12.  
  13. @Override
  14. protected void onCreate(Bundle savedInstanceState) {
  15. super.onCreate(savedInstanceState);
  16. setContentView(R.layout.activity_main);
  17.  
  18. //定义一个过渡drawable数组,最后一个drawable:drawables[n-1]是最终的显示形式
  19. //第一个是开始
  20. Drawable[] drawables=new Drawable[]{new ColorDrawable(Color.TRANSPARENT),new ColorDrawable(Color.RED)};
  21. TransitionDrawable td=new TransitionDrawable(drawables);
  22.  
  23. ImageView image = (ImageView) findViewById(R.id.imageView);
  24. image.setImageDrawable(td);
  25.  
  26. //交叉淡入样式
  27. td.setCrossFadeEnabled(true);
  28.  
  29. //开始执行动画,从设定的时间内,缓慢的从TransitionDrawable构造时候的数组第一个drawable(drawables[0])渐变成最后数组最后一个drawable(drawables[n-1])
  30. //动画执行结束后,最终显示的是最后一个drawables[n-1]
  31. td.startTransition(500);
  32. }
  33. }

如果要用xml实现TransitionDrawable,需要在drawable目录下新建一个xml代码文件,比如transition.xml,代码:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <transition xmlns:android="http://schemas.android.com/apk/res/android">
  3. <item android:drawable="@android:color/transparent" />
  4. <item android:drawable="@android:color/holo_red_dark"/>
  5. </transition>

上层Java代码变成:

  1. TransitionDrawable transition = (TransitionDrawable)getResources().getDrawable(R.drawable.transition);
  2. ImageView image = (ImageView) findViewById(R.id.imageView);
  3. image.setImageDrawable(transition);
  4.  
  5. transition.setCrossFadeEnabled(true);
  6. transition.startTransition(500);

Android TransitionDrawable:过渡动画Drawable的更多相关文章

  1. 遇到的一个移动端从下往上过渡的弹框,在Android下过渡动画的优化问题。

    优化之前: /* 分享弹框样式 */ .popUpDiv { width: 100vw; height: 100vh; transition: all 0.5s ease; position: fix ...

  2. Android动画Drawable Animation

    Drawable Animation是逐帧动画,那么使用它之前必须先定义好各个帧.我们可以通过代码定义,也可以使用xml文件定义,一般使用后者.如下: <?xml version="1 ...

  3. android 5.0 -- Activity 过渡动画

    android 5.0 提供3种过渡动画: 进入 退出 进入退出包括如下效果: explode 分解:屏幕中间进出 slide 滑动:屏幕边缘进出 fade 淡出:改变透明度来添加或者移除视图 共享 ...

  4. 关于android系统启动不同activity默认过渡动画不同的一些认识

    在同一个android设备里,发现不同的app启动时显示的过渡动画是不同的.查看显示不同过渡动画的两个app的源码,其设置的主题都是同一个主题,但是为什么过渡动画效果不同呢?后来发现,activity ...

  5. Android Animation(动画)

    前言 Android 平台提供实现动画的解决方案(三种) 一.3.0以前,android支持两种动画: (1)Frame Animation:顺序播放事先做好的图像,与gif图片原理类似,是一种逐帧动 ...

  6. Android样式的开发:drawable汇总篇

    Android有很多种drawable类型,除了前几篇详细讲解的shape.selector.layer-list,还有上一篇提到的color.bitmap.clip.scale.inset.tran ...

  7. Android中的动画总结

    文章主要内容来源<Android开发艺术探索>,部分内容来源网上的文章,文中会有链接. Android系统提供了两个动画框架:属性动画框架和View动画框架. 两个动画框架都是可行的选项, ...

  8. 【Android - 进阶】之Drawable简介

    Drawable是什么?Android给我们的解释是:“A general abstraction for 'something that can be drawn'.”,翻译过来就是:对于可以绘制的 ...

  9. Android中矢量动画

    Android中矢量动画 Android中用<path> 标签来创建SVG,就好比控制着一支画笔,从一点到一点,动一条线. <path> 标签 支持一下属性 M = (Mx, ...

随机推荐

  1. oracle 查看未关闭连接

    查看连接状态.问题电脑等信息: select sid,serial#,username,program,machine,status from  v$session; 2.查看sql; select ...

  2. 创建表规范 lob 字段

    ORAClce 11g 提供如下特性: BasicfileOracle10g 及之前版本被称为basicfile Securefile11g中新增securefile 优点:集中写入缓存(WGC),4 ...

  3. RHEL 6.5----SCSI存储

    主机名 IP master 192.168.30.130 node-1 192.168.30.131 node-2 192.168.30.132 安装并启动 [root@master ~]# ll / ...

  4. DedeCMS全版本通杀SQL注入漏洞利用代码及工具

    dedecms即织梦(PHP开源网站内容管理系统).织梦内容管理系统(DedeCms) 以简单.实用.开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,近日,网友 ...

  5. RabbitMQ十:重要方法简述(参数)

    主要方法 前言 经过前面的学习,RabbitMQ 已经拙见有一定认识和了解,今天主要针对我们在前面学习方法进行一次小总结,本篇文章也想在开头写的,但是后来考虑,如果我都把方法都一一列举,我想大家都没很 ...

  6. AJPFX总结List的三个子类的特点

    ArrayList:                        底层数据结构是数组,查询快,增删慢.                        线程不安全,效率高.              ...

  7. Android 仿百度医生的智能分诊界面

    http://blog.csdn.net/jiang89125/article/details/49622853

  8. Monkeyrunner介绍

    Monkeyrunner概述 Monkeyrunner是由Google开发.用于android系统的自动化测试工具,由android系统自带,存在于android sdk中(sdk:software ...

  9. 51nod 1096 距离之和最小(水题日常)

    基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 X轴上有N个点,求X轴上一点使它到这N个点的距离之和最小,输出这个最小的距离之和.   Input 第1行:点的数量 ...

  10. 第二周作业xml学习情况

    1.xml简介 可扩展标记语言是一种很像超文本标记语言的标记语言. 它的设计宗旨是传输数据,而不是显示数据. 它的标签没有被预定义.您需要自行定义标签. 它被设计为具有自我描述性. 它是W3C的推荐标 ...