background 渐变

来源:互联网 发布:微信多帐号登录软件 编辑:程序博客网 时间:2024/05/22 09:43

最近公司项目要求,有个Item 的背景 需要动画渐变效果。

但是我们的item背景 是 drawable


background 是 drawable 实现渐变


网上找到 一个类 TransitionDrawable,能达到这个效果

两种代码方式,我用的第一种

一、使用XML

1、这里需要有两个 drawable,这个drawable可以是图片 也可以是自己绘制的,比如我们的就是绘制的 渐变色

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android">    <!-- 渐变 -->    <gradient        android:endColor="#20F21612"        android:startColor="#00ffffff"        android:type="linear" /></shape>


第二个是绘制的纯白色,就不贴了


2、还是在 drawable 里面,右键 新建一个 transition

<?xml version="1.0" encoding="utf-8"?><transition xmlns:android="http://schemas.android.com/apk/res/android">    <item android:drawable="@drawable/需要上来就显示的drawable" />    <item android:drawable="@drawable/最终要显示的drawable" /></transition>


3、在代码里

        TransitionDrawable transition = (TransitionDrawable) res.getDrawable(第二步设置的那个 transition);        目标控件.setBackground(transition);        transition.startTransition(1000);


这样就可以了,顺便贴上 Timer


Timer timer = new Timer();            timer.schedule(new TimerTask() {                @Override                public void run() {                    handler.sendEmptyMessage(1);                }            },3000,3000);

参数(run,延时几秒开始,每隔几秒触发一次)


timer是开新线程,所以要切回主线程。


二、第二种就是代码创建

这个我还没有测过,直接粘贴别人的代码了

 TransitionDrawable td = new TransitionDrawable(new Drawable[] { new ColorDrawable(0xfffcfcfc),        new BitmapDrawable(mContext.getResources(), bitmap) });imageView.setImageDrawable(td);td.startTransition(300);



记录一个 Drawable的链接

Android中Drawable分类汇总详解

http://blog.csdn.net/ouyang_peng/article/details/8800743






原创粉丝点击