android transitiondrawable基本使用

一:transitiondrawable是LayerDrawable的子类,不过它只负责管理两层drawable,并且提供了一个透明度变化的动画,可以控制从一层drawable过度到另一层drawable的动画效果。


二:在drawable文件夹下:

<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">


    <item android:drawable="@drawable/lamp_off"
          />

    <item android:drawable="@drawable/lamp_on"
        />
</transition>

三:布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">

    <ImageView
        android:src="@drawable/bitmap"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/iv_drawable"/>

    <Button
        android:id="@+id/btn_on"
        android:text="light on"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <Button
        android:id="@+id/btn_off"
        android:text="light off"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
</LinearLayout>

四:activity

package com.example.kirito.myapplication.testdrawable;

import android.graphics.drawable.TransitionDrawable;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

import com.example.kirito.myapplication.R;

/**
 * Created by kirito on 2016.10.31.
 */

public class TestDrawable extends AppCompatActivity implements View.OnClickListener{
    private Button on,off;
    private ImageView iv;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.testdrawable);

        on = (Button) findViewById(R.id.btn_on);
        off = (Button) findViewById(R.id.btn_off);
        on.setOnClickListener(this);
        off.setOnClickListener(this);
        iv = (ImageView) findViewById(R.id.iv_drawable);
    }

    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.btn_off){
            TransitionDrawable drawable = (TransitionDrawable) iv.getDrawable();
            //从第二个item切换到第一个item
            drawable.reverseTransition(3000);
        }else if (v.getId() == R.id.btn_on){
            TransitionDrawable drawable = (TransitionDrawable) iv.getDrawable();
            //从第一个item切换到第二个item
            drawable.startTransition(3000);
        }
    }
}

五:实现关灯,开灯的效果



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值