ScaleAnimation动画

ScaleAnimation动画是用来进行缩放的动画,我在使用时刚开始有些不解的问题
后来经过学习,有了一个更深的了解。
先来看看源码,其实ScaleAnimation有四个构造函数,这里我只列出了其中的一个,因为
另外的三个其实都只是这个构造函数的一种特殊情况,这里我就只分析这个构造函数。

 /*** Constructor to use when building a ScaleAnimation from code* * @param fromX Horizontal scaling factor to apply at the start of the*        animation* @param toX Horizontal scaling factor to apply at the end of the animation* @param fromY Vertical scaling factor to apply at the start of the*        animation* @param toY Vertical scaling factor to apply at the end of the animation* @param pivotXType Specifies how pivotXValue should be interpreted. One of*        Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or*        Animation.RELATIVE_TO_PARENT.* @param pivotXValue The X coordinate of the point about which the object*        is being scaled, specified as an absolute number where 0 is the*        left edge. (This point remains fixed while the object changes*        size.) This value can either be an absolute number if pivotXType*        is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise.* @param pivotYType Specifies how pivotYValue should be interpreted. One of*        Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or*        Animation.RELATIVE_TO_PARENT.* @param pivotYValue The Y coordinate of the point about which the object*        is being scaled, specified as an absolute number where 0 is the*        top edge. (This point remains fixed while the object changes*        size.) This value can either be an absolute number if pivotYType*        is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise.*/public ScaleAnimation(float fromX, float toX, float fromY, float toY,int pivotXType, float pivotXValue, int pivotYType, float pivotYValue) {mResources = null;mFromX = fromX;mToX = toX;mFromY = fromY;mToY = toY;mPivotXValue = pivotXValue;mPivotXType = pivotXType;mPivotYValue = pivotYValue;mPivotYType = pivotYType;initializePivotPoint();}




参数如下
float fromX 动画起始时 X坐标上的伸缩尺寸
float toX 动画结束时 X坐标上的伸缩尺寸   
float fromY 动画起始时Y坐标上的伸缩尺寸   
float toY 动画结束时Y坐标上的伸缩尺寸   
int pivotXType 动画在X轴相对于物件位置类型   
float pivotXValue 动画相对于物件的X坐标的开始位置   
int pivotYType 动画在Y轴相对于物件位置类型   
float pivotYValue 动画相对于物件的Y坐标的开始位置  


说明
fromX,fromY
代表着你的这个View动画执行开始时的X轴方向和Y轴方向的缩放
尺寸,当为1.0f时就代表这和原来大小相同,当为2.0就是在X轴或Y轴方向上2倍尺寸大小。


toX,toY
和上边一样,代表着你的这个View动画执行结束时的X轴方向和Y轴方向的缩放
尺寸。


pivotXType,pivotYType
代表着这个View动画执行的过程中你指定的伸缩原点相对于你的物件位置如何设置的方式。它共有三种
模式,分别为Animation.ABSOLUTE,Animation.RELATIVE_TO_SELF,Animation.RELATIVE_TO_PARENT
分别代表着绝对位置,相对于自己和相对于父布局的模式。当使用第一种时,比较简单,就是说把整个
动画的缩放中心点设置在一个相对于你的View的一个绝对位置处。当使用Animation.RELATIVE_TO_SELF和Animation.RELATIVE_TO_PARENT
就代表着你设定伸缩原点时使用相对位置,这个相对位置的参照物可以是你自己也可以是父布局。


pivotYValue,pivotXValue
这两个参数是和上面两个参数相关联的,也就是说当我们使用上面的两个参数设置好我们相对于物件位置类型时,
我们使用这两个参数来说明我们到底把这个伸缩原点放到哪里。这里我们就不讨论Animation.ABSOLUTE这种情况了
,比较简单。我们讨论Animation.RELATIVE_TO_SELF,Animation.RELATIVE_TO_PARENT这两种模式下的参数的使用。
这两个参数是float类型,是相对的位置值,例如当你使用RELATIVE_TO_SELF模式并设置pivotXValue的值为0.5时,
就是说你的X轴方向的伸缩点设在你的这个View的X轴方向的中点处,同样如果你在把Y轴设为一样的方式。那么也就确定了
你的动画执行时的缩放原点为你的View的中心处,从这个中心点开始变大或缩小。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/453546.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Swift快速入门(一)第一个Swift程序

1. 本系列说明 本系列只是一个Swift快速入门的教程,并没有详尽的介绍Swift,Swift也并不是一个简单的编程语言,所以要想详尽的系统的学习Swift,本系列并不适合你,此系列只是让开发者可以快速的用Swift来进行开发。另外学…

java 判断数字变化增减_java String 强化操作 判断数字 字符串转阿拉伯数字,相似度等等...

importjava.io.BufferedReader;importjava.io.StringReader;importjava.util.ArrayList;importjava.util.List;importjava.util.regex.Matcher;importjava.util.regex.Pattern;/***author*/public classStrings {/*** 全角转半角**paramsbc 全角字符*returnString*/public stat…

[CareerCup] 4.7 Lowest Common Ancestor of a Binary Search Tree 二叉树的最小共同父节点

4.7 Design an algorithm and write code to find the first common ancestor of two nodes in a binary tree. Avoid storing additional nodes in a data structure. NOTE: This is not necessarily a binary search tree. LeetCode上的原题,请参见我之前的博客Lo…

让猎头雨天送伞--大话猎头

让猎头雨天送伞--大话猎头(1) Arthur毕业之后,在一同家公司的研发部工作了7年,从初级开发工程师一直做到项目经理,过手十几个大项目,现在带领8人的研发团队。猎头最近频频与他沟通,希望他考虑几个外企研发主管的机会…

android布局的一些知识

(一)android:layout_alignParentBottom 控制该组件是否与布局容器底端对齐android:layout_alignParentLeft 控制该组件是否与布局容器左边对齐android:layout_alignParentRight 控制该组件是否与布局容器右边对齐android:layout_alignParentTop 控制该组件是否与布局容器顶端对…

IE8兼容问题总结---trim()方法

1.IE8不支持,jquery的trim()去空格的方法 错误表现 : 会报错,对象不支持此属性或方法; 解决办法 : 使用正则匹配空格 例如 : /^\s|\s$/greplace(/^\s|\s$/g,"");转载于:https://www.cnblogs.com/lizhiwei8/p/8392589.html

java的流套接_java-使用流关闭套接字

我的以下问题非常简单.这是我的代码:public class Protocol implements Runnable {private SSLSocket socket null;private InputStream is null;private OutputStream os null;...public Protocol(Socket s) {socket (SSLSocket)s;is socket.getInputStream()…

简历撰写

没什么可写的项目,或者自己说不太清,效果也不明显的项目,就不要写简历上了转载于:https://www.cnblogs.com/brainstorm/p/7942669.html

如何真正做好项目管理?

项目要能顺利执行其实并不简单,如果又渉及多个单位合作,困难程度又大增。 从项目经理的工作日志片段,可以看出每个项目经理应该都有自已悲惨的故事,程度恐怕只有过之而无不及。项目经理到底应该有那些看家本领呢? …

日历视图的XML属性

日历视图的XML属性 : -- 设置样式 : android:dateTextAppearance, 设置日期文字显示样式; -- 设置首日 : android:firstDayOfWeek, 设置星期几是每周的第一天, 默认是周一; -- 选中颜色 : android:focusedMonthDateColor, 设置选中日期所在月份日期颜色; -- 最大日期 : android…

作业30-首页列表显示全部问答,完成问答详情页布局

首页列表显示全部问答:将数据库查询结果传递到前端页面 Question.query.all()前端页面循环显示整个列表。问答排序app.route(/) def index():context{questions:Question.order_by(creat_time).query.all()}return render_template("index.html",**contex…

java重置radiobutton的选项_求助:这道题显示radiobutton男女的功能和重置功能怎么做...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼package org.demo.app.gui; import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax…

PopupWindow和AlertDialog区别

1 第一个重要的区别是AlertDialog不能指定显示位置,只能默认显示在 屏幕最中间(当然也可以通过设置WindowManager参数来改变位置)。 而PopupWindow是可以指定显示位置的,随便哪个位置都可以,更加灵活。 2 AlertDia…

Scala学习之爬豆瓣电影

简单使用Scala和Jsoup对豆瓣电影进行爬虫,技术比較简单易学。写文章不易,欢迎大家採我的文章,以及给出实用的评论,当然大家也能够关注一下我的github;多谢。 1、爬虫前期准备 找好须要抓取的链接:https://m…

新兴的多媒体格式——MXF 文件格式分析 和简介

1. 新兴的多媒体格式 MXF格式已经被推出几年了, 从当初一个陌生的不为人们 重视的格式 逐渐获得了业内人士的认知和认可, 现如今正被广泛应用于广播电视 与后期制作领域, 且有不断扩大之势, 松下公司推出的基于PII卡的 无磁带式…

[JMX一步步来] 9、基于JBoss来写MBean

前面都是用JDK自带的JMX实现来写的MBean,JMX的实现不独SUN一家,JBOSS也有自己的JMX实现。如果你使用JBOSS来做WEB服务器,那么基于JBOSS的实现来写MBean,是一个不错的选择。象我们公司就是用JBOSS的,因此所有MBean都是基…

Point和PointF

Point和PointF Point在GDI的结构中是最简单的,在数学上它完全等价于一个二维矢量,包含两个公共整型属性,表示它与某个特定位置的水平和垂直距离。例如,为了从点A到点B,需要水平移动11个单位,并向下垂直移动…

开博第一篇,聊聊 最基本的 “==” 与 “===”区别

“”与“”都是比较左右两个值是否相等,但它们的原理是不同的,特别要理解“”的比较。 “”是弱比较,如果左右两边的比较数类型不同,它们会转换成相同类型,再进行比较,那么问题来了,它们是怎么进…

面向对象的故事~数据底层操作告诉了我们接口,抽象类,继承与多态性的使用~续(TestBase继承ITest是多余的?)...

在我上一篇文章发表后,收到了很多博友的回复,其中有一位博友提了一个问题,TestBase 继承了ITest是多余的,我认为,我有必要再写一篇文章来说明一下,TestBase为什么要继承ITest,当然各位也可以再次发表自己的…

java样式是什么_java css样式 css样式的种类 选择器 文本相关样式 背景相关样式 边框 盒子模式...

今日内容:? CSS样式? CSS样式的种类? 选择器? 文本相关样式? 背景相关样式? 边框? 盒子模式select标签下拉列表标签,常用于单选和多选,是一个组合标签,需要和子标签option一起搭配使用,不会独占一行常用属性:? name属性:发送给服务器使用的? multiple属性:不写默认单选…