android动画中位置Animation.ABSOLUTE,Animation.RELATIVE_TO_SELF,Animation.RELATIVE_TO_PARENT区别

原创 2015年11月17日 18:54:38

主文件的布局如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:background="#ff0000"
        android:layout_width="match_parent"
        android:layout_height="300dp" >

        <Button
            android:id="@+id/btn"
            android:background="#999999"
            android:layout_width="wrap_content"
            android:layout_height="20dp"
            android:textSize="8sp"
            android:layout_marginTop="30dp"
            android:layout_marginLeft="30dp"
            android:text="btn" >
        </Button>
    </LinearLayout>

</RelativeLayout>





(1)100%,表示相对自己的位置的一倍,坐标原点为自己的左上角

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

    <translate
        android:duration="300"
        android:fromYDelta="0"
        android:toYDelta="100%" />

</set>




(2)100,坐标原点为自己的左上角,移动100px

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

    <translate
        android:duration="300"
        android:fromYDelta="0"
        android:toYDelta="100" />

</set>



(2)80%p,父坐标的80%,坐标原点为自己的左上角

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

    <translate
        android:duration="300"
        android:fromYDelta="0"
        android:toYDelta="80%p" />

</set>



(4)由于这三种位置的坐标原点都是View自己的左上角,所以0、0%、0%p都是一样的。

注意以下几点:a、坐标原点都是View的左上角开始计算;

    b、不要认为只有写成了android:toYDelta="100%p"才会从ParentView不显示,下面的例子计算一下,

  parent view 高:300dp、View 20dp,margin Top 30dp。想要实现view到parent的底部。

  300 - 30 - 20的距离就是从原始位置到parentview底部的距离,那么换算一下,250 / 300 *100%约等于 83.3%。

  也就是大于此值就已经超过view已经开始超出parentview范围了。

                                    c、还有就是当超出了parentview的时候,是不会在parentview的父view显示的。

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

    <translate
        android:duration="300"
        android:fromYDelta="0%p"
        android:toYDelta="83%p" />

</set>



总结:(1)坐标原点;

    (2)%p是如何计算的。

Animation 参数详解

Animations分两类: 第一类:渐变的(Tweened): 淡入淡出(Alpha),旋转(Rotate),移动(Translate),缩放(Scale); 第二类:Frame-by-Fram...

Animation的使用

Animation(动画)有两种分类:补间动画(Tween)和帧动画(Frame) 补间动画主要有以下几种: 旋转(RotateAnimation) 平移(TranslateAnimat...

TranslateAnimation详解

TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta); 从(fromXDe...

animation 坐标参考系 Animation.RELATIVE_TO_PARENT 与 Animation.RELATIVE_TO_SELF

今天闲来没事,研究animation使用,发现XXXAnimation构造函数参数pivotXType与pivotYType设置成Animation.RELATIVE_TO_SELF时与预期的一样,但...

Android动画之初步(一)

Android Tweened Animation一共有四种 Alpha: 淡入淡出效果 Scale: 缩放效果 Rotate: 旋转效果 Translate:移动效果 使用Tweened ...

Android利用Animation.RELATIVE_TO_SELF做出个性化的动画

在Android开发中,Animation是用来给控件制作效果的。大多数的控件都可以用这个类,这个类包含了4种基本动作,分别为移动,旋转,淡入淡出,缩放。 使用Animation的两种方式: 方式...

android--利用Animation.RELATIVE_TO_SELF做出个性化的动画

在Android开发中,Animation是用来给控件制作效果的。大多数的控件都可以用这个类,这个类包含了4种基本动作,分别为移动,旋转,淡入淡出,缩放。 使用Animation的两种方式: 方式一:...

Android动画三部曲之一 View Animation & LayoutAnimation

转载请注明出处:http://blog.csdn.net/crazy1235/article/details/50465885本篇文章对android的Tween动画和帧动画以及布局动画进行总结。Tw...

android style的继承方式 点(.)和parent

一.概述     通过继承机制,可以利用已有的style来定义新的style。所定义的新的style型不仅拥有新定义的item,而且还同时拥有旧的item。我们称已存在的用来派生新的style为...

【Android 动画】View Animation详解(一)

安卓平台目前提供了两大类动画,在Android 3.0之前,一大类是View Animation,包括Tween animation(补间动画),Frame animation(帧动画),在andro...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android动画中位置Animation.ABSOLUTE,Animation.RELATIVE_TO_SELF,Animation.RELATIVE_TO_PARENT区别
举报原因:
原因补充:

(最多只允许输入30个字)