Android 估值器工具类valueUtil
发布日期:2021-06-30 22:37:25
浏览次数:2
分类:技术文章
本文共 3237 字,大约阅读时间需要 10 分钟。
一、解析:
1、方法1:evalute(float percent, Number startValue, Number endValue)
1)使用场景1,ValueAnimator 值动画里:final int startHeight = mImageView.getHeight(); final int endHeight = mBitmapHeight; ValueAnimator animator = ValueAnimator.ofInt(1); animator.addUpdateListener(new AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { float fraction = animation.getAnimatedFraction(); int newHeight = (int) (ValueUtil.evalute(fraction, startHeight, endHeight) + 0.5f); mImageView.getLayoutParams().height = newHeight; mImageView.requestLayout(); } }); animator.setInterpolator(new OvershootInterpolator(4)); animator.setDuration(500); animator.start();
—————————————————–
(java 架构师全套教程,共760G, 让你从零到架构师,每月轻松拿3万) 请先拍 , 下载请用百度盘 目录如下: 01.高级架构师四十二个阶段高 02.Java高级系统培训架构课程148课时 03.Java高级互联网架构师课程 04.Java互联网架构Netty、Nio、Mina等-视频教程 05.Java高级架构设计2016整理-视频教程 06.架构师基础、高级片 07.Java架构师必修linux运维系列课程 08.Java高级系统培训架构课程116课时 (送:hadoop系列教程,java设计模式与数据结构, Spring Cloud微服务, SpringBoot入门) 01高级架构师四十二个阶段高内容: 01高级架构师四十二个阶段高内容: —————————————————–2)使用场景2,ViewHelper值动画里:
ViewHelper.setScaleX(mLeftConent, evalute(percent, 0.5f, 1.0f)); ViewHelper.setScaleY(mLeftConent, evalute(percent, 0.5f, 1.0f)); // 平移动画 , -width/2 ->0 ,从外到内 ViewHelper.setTranslationX(mLeftConent, evalute(percent, -mScreenWidth / 2.0f, 0)); // 透明度从0.5f到 1.0f ViewHelper.setAlpha(mLeftConent, evalute(percent, 0.5f, 1.0f));
2、颜色渐变方法:evaluateColor(float fraction, Object startValue, Object endValue)
使用场景:
// 背景动画 ,此动画必须在xml文件的主布局里添加背景图片getBackground().setColorFilter((Integer) evaluateColor(percent, Color.BLACK, Color.TRANSPARENT), Mode.SRC_OVER);
二、代码:
/** * @描述 估值器工具类 * @项目名称 App_imooc * @包名 com.android.imooc.paralla * @类名 ValueUtil * @author chenlin * @date 2015年5月29日 下午12:29:12 * @version 1.0 */public class ValueUtil { /** * 估值器,得到移动后的位置 * * @param percent * @param startValue * @param endValue * @return */ public static Float evalute(float percent, Number startValue, Number endValue) { float start = startValue.floatValue(); return start + percent * (endValue.floatValue() - start); } /** * 颜色变化过度 * * @param fraction * @param startValue * @param endValue * @return */ public static Object evaluateColor(float fraction, Object startValue, Object endValue) { int startInt = (Integer) startValue; int startA = (startInt >> 24) & 0xff; int startR = (startInt >> 16) & 0xff; int startG = (startInt >> 8) & 0xff; int startB = startInt & 0xff; int endInt = (Integer) endValue; int endA = (endInt >> 24) & 0xff; int endR = (endInt >> 16) & 0xff; int endG = (endInt >> 8) & 0xff; int endB = endInt & 0xff; return (int) ((startA + (int) (fraction * (endA - startA))) << 24) | (int) ((startR + (int) (fraction * (endR - startR))) << 16) | (int) ((startG + (int) (fraction * (endG - startG))) << 8) | (int) ((startB + (int) (fraction * (endB - startB)))); }}
转载地址:https://lovoo.blog.csdn.net/article/details/51531375 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年04月24日 06时50分32秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
使用Spark读写外部存储介质(Mysql、Hbase、Redis)
2019-05-01
Spark学习——利用Mleap部署spark pipeline模型
2019-05-01
手写LogisticRegression
2019-05-01
SQL经典题目总结
2019-05-01
剑指offer编程题,一周刷完
2019-05-01
推荐系统初学
2019-05-01
Map的遍历和排序
2019-05-01
约瑟夫环问题
2019-05-01
springboot+log4j2体验
2019-05-01
redis集群启动方式
2019-05-01
ubuntu系统开机自启动方式
2019-05-01
ES查询效率之快的三个重要技术
2019-05-01
JDBC概念,JDBC连接到Oracle 11g(内附驱动jar包),
2019-05-01
彻底卸载MySQL
2019-05-01
Oracle创建表,修改表(添加列、修改列、删除列、修改表的名称以及修改列名)
2019-05-01
SQL命令分类(DDL、DML、DCL、TCL以及事务)
2019-05-01
nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate 报错
2019-05-01
kafka集群搭建
2019-05-01
Python正则表达式,从入门到实战,精华都在这里!
2019-05-01
喜欢玩王者荣耀的有福了,用 Python 获取英雄皮肤壁纸
2019-05-01