transition标签、scale标签和inset标签

很多时候我们在实现渐变的动画效果时,都会使用到animation,但实际上我们有既简单又完美的解决方法,没错,它就是Transition啦,Transition用于实现两个Drawable之间的淡入淡出的效果,它的属性如下:

<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id=""
        android:width=""
        android:height=""
        android:bottom=""
        android:drawable=""
        android:end=""
        android:gravity=""
        android:left=""
        android:right=""
        android:start=""
        android:top=""
</transition>

使用:

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

xml:
<ImageView
        android:id="@+id/iv"
        android:layout_centerInParent="true"
        android:layout_width="250dp"
        android:layout_height="100dp"
        android:background="@drawable/shape"/>
通过这2个方法实现让图片淡入淡出的效果
 TransitionDrawable drawable= (TransitionDrawable) iv.getBackground();
        drawable.startTransition(4000);
 TransitionDrawable drawable= (TransitionDrawable) iv.getBackground();
  drawable.resetTransition(4000);

inset标签:这个跟全屏布局的效果差不多,貌似很少用到它,它的效果直接就在全屏布局完成了。
scale标签:这个标签用来实现缩放效果,属性如下:

<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable=""
    android:scaleGravity=""     ---设置drawable缩放后的位置,取值和bitmap标签的一样,就不一一列举说明了
    android:scaleHeight=""  ---设置可缩放的高度,用百分比表示,格式为XX%,0%表示不做任何缩放,50%表示只能缩放一半
    android:scaleWidth=""    --- 设置可缩放的宽度,用百分比表示,格式为XX%,0%表示不做任何缩放,50%表示只能缩放一半           
    android:useIntrinsicSizeAsMinimum="">     ---设置drawable原有尺寸作为最小尺寸,设为true时,缩放基本无效

</scale>

示例:

<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/christmas"
    android:scaleGravity="center"
    android:scaleHeight="50%"
    android:scaleWidth="10%"
    android:useIntrinsicSizeAsMinimum="false">

</scale>


xml:
<ImageView
        android:id="@+id/iv"
        android:layout_centerInParent="true"
        android:layout_width="250dp"
        android:layout_height="100dp"
        android:background="@drawable/shape"/>

activity中的代码:
  ImageView scaleImage = (ImageView) findViewById(R.id.iv);
  ScaleDrawable scale = (ScaleDrawable) scaleImage.getBackground();
  scale.setLevel(1);    ---这里可以设置1到10000的数字,数字越大显示越大。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值