Android素材L图像过渡插值器

2024-04-15

这更多的是一个数学问题而不是编程问题。

好吧,我想问一下你知道Material design中描述的插值器是什么:

它看起来是一个AccelerateDecelerateInterpolator但减速效果衰减较慢。

我最好的孵化是:

public class MaterialInterpolator implements Interpolator {

    @Override
    public float getInterpolation(float input) {
        if(input<1./3f)
            return new AccelerateInterpolator().getInterpolation(input);
        else
            return new DecelerateInterpolator().getInterpolation(input);
    }

}

这在值之间造成了差距:

Time / Value
...
0.3,0.09
0.317,0.100489
0.333,0.110889  <-- gap
0.35,0.57750005
0.367,0.599311
0.383,0.61931103
0.4,0.64
...

减速 AccelerateDecelerateInterpolator:

output = accelerateDecelerateInterpolator(decelerateInterpolator(input));

private float accelerateDecelerateInterpolator(float input) {
    return (float)(Math.cos((input + 1) * Math.PI) / 2.0f) + 0.5f;
}

private float decelerateInterpolator(float input) {
    //  return 1.0f - (1.0f - input) * (1.0f - input);
    return  (float)(1.0f - Math.pow((1.0f - input), 2 * mFactor));  // default factor =1.f
}

提供类似于以下的费率:

以及值/时间曲线:

not sure if at the beginning is an output error or the actual behavior should be an output error


Source: http://www.google.com/design/spec/patterns/imagery-treatment.html http://www.google.com/design/spec/patterns/imagery-treatment.html


这些图看起来非常像x*(a*x+b)^2。 限制二次根等于 1,就像a*x*(x-1)^2。 综合一下,选择了a使得结果为 1x=1并得到了3*x^4-8*x^3+6*x^2.

代码是:

public class MaterialInterpolator implements Interpolator {

    @Override
    public float getInterpolation(float x) {
        return (float) (6 * Math.pow(x, 2) - 8 * Math.pow(x, 3) + 3 * Math.pow(x, 4));
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android素材L图像过渡插值器 的相关文章

  • 不同 Android 设备上 box2D 中出现奇怪的“口吃”

    我正在用 C 同时开发引擎和游戏 并使用 box2D 作为物理后端 我正在不同的 Android 设备上进行测试 在三分之二的设备上 游戏运行良好 物理效果也很好 然而 在我的 Galaxy Tab 10 1 上 我偶尔会遇到某种 口吃 的
  • Kapt 未在即时应用程序功能模块中生成类

    我在我的 Android 应用程序中使用 dagger2 即使没有错误 它也不会生成匕首组件类 我已经在设置中启用了注释处理器并重新启动了我的 android studio 但这对我来说不起作用 我也读过这个帖子Dagger2 不生成 Da
  • 在名称中使用时间戳时,Android Studio 在构建后无法启动应用程序

    我遇到了 gradle 和 Android Studio 的问题 该问题仅在 Android Studio 中构建时出现 BuildServer 和 Commandline 工作正常 applicationVariants all vari
  • 添加动态数据时 footable 出现问题

    我需要 jQuery Mobile 方面的一些帮助富表 http css tricks com footable a jquery plugin for responsive data tables 我正在表中动态添加数据 HTML tab
  • 在代码中旋转按钮(或其中的文本)

    我必须通过编码随机旋转按钮 或里面的文本 它是相同的 API级别低于11是否有button setRotate x 好吧 看了一下 答案是 很复杂 您可以使用旧的动画框架旋转按钮 例如像这样 Button button Button fin
  • 毕加索磁盘缓存

    我正在使用 Picasso 从 URL 加载图像 Picasso with getApplicationContext load product getImageUrl into imageView 据我所知 每次都会访问该网址 而不是缓存
  • 编译后从字节代码中删除注释

    我们正在使用一个包含使用 JAXB 注释进行注释的 bean 的库 我们使用这些类的方式完全不依赖于 JAXB 换句话说 我们不需要 JAXB 也不依赖注释 但是 由于注释存在 它们最终会被处理注释的其他类引用 这要求我将 JAXB 捆绑到
  • 如何将 Android Instrumentation 测试推送到模拟器/设备?

    我正在尝试使用 Ubuntu 9 04 中的命令行 shell 在 Android 模拟器上运行 Webkit 布局测试 adb s emulator 5554 shell am instrument w com android dumpr
  • Android 中有没有办法获取 SD 卡大小?

    欢迎大家 我已经在 Stackoverflow 和 google 上尝试过与此相关的每个问题 但没有一个有效 我已经尝试过类似下一个链接的操作 但它返回的内容与内部存储相同 如何获取外部存储 SD 卡的大小 带安装的 SD 卡 https
  • 使用 RxJava 限制吞吐量

    我现在遇到的情况很难解释 所以我会写一个更简单的版本来解释这个问题 我有一个Observable from 它发出一系列由ArrayList文件数量 所有这些文件都应上传到服务器 为此 我有一个函数可以完成这项工作并返回一个Observab
  • 使用 mupdf android 库导航到特定页面

    我如何使用 muPDF 库导航到特定页面 或者有没有办法让图书馆不记得我最后在那个pdf文件中浏览的是哪一页 Uri uri Uri parse path Intent intent new Intent MainActivity getC
  • 将图像保存到内部存储器并将出现在图库中

    我搜索了很多与我的问题相关的问题 是否有办法将图像存储在内存中并且它也应该出现在图库中 这是完全有可能的 我以前也这么做过 在将图像保存到内存 或称为应用程序文件夹等 之前 您最好设置Context MODE WORLDREADABLE 虽
  • 有没有办法在多个嵌套的 RecyclerView 之间共享同一个 LayoutManager

    我正在开发一个显示游戏列表的应用程序 在每个游戏的 itemView 内 我还有一个要显示的视频列表 预览和结构如下 我部署了一个RecyclerView作为窗口根视图 然后对于视频 我使用网格样式的RecyclerView来显示 所以这里
  • 在 android 中,第一次单击时按钮侦听器未注册

    因为我是 Android 新手 所以我遇到了按钮监听器的问题 我正在使用 OnClickListener 来处理胸像 但它第一次点击后不执行一旦我单击多个 它就会表现良好 但如何使其在第一次单击时成为可能 这是我的代码 public cla
  • 无法登录 Google Play 游戏服务

    我在开发者控制台上使用包名称和正确的签名证书设置了我的游戏 并为其创建了排行榜 但没有创建任何成就 然后 我从以下位置下载了示例 Type A Number Challenge 和 BaseGameUtils https developer
  • 在片段之间切换时底部导航栏会向下推

    在我的活动中 我有一个底部导航栏和框架布局来显示片段 一切正常 但问题是当我开始按顺序从 1 4 移动时 底部导航栏保持在其位置 但当我突然从 4 跳到2 然后底部导航栏就会超出屏幕 当再次单击同一项目时 它就会回到正常位置 该视频将清楚地
  • Android 4.2 - Environment.getExternalStorageDirectory().getPath() 行为

    我一直在开发一个android应用程序 在上次更新到4 2之前 我使用 Environment getExternalStorageDirectory getPath 它返回了我 storage sdcard0 但自从更新后我现在得到了 s
  • 将 Crashlytics 集成到图书馆项目

    我有一个图书馆项目 自定义视图库项目 它没有任何活动 服务 我想将 Crashlytics SDK 集成到我的库中 当我尝试通过 Android Studio 的 Crashlytics 插件 工具栏中的图标 添加它时 它只是停留在 Che
  • 改造方法调用可能会产生“java.lang.NullPointerException”

    使用 Retrofit 2 3 0 我在 Android Studio 中收到以下消息 有关如何删除此 IDE 错误消息的任何建议 谢谢 来自Response文档 http square github io retrofit 2 x ret
  • Android Espresso - 如果未选中,请单击复选框

    I have onView withId R id check box perform click 但我只想在尚未选中该复选框时执行此操作 我怎样才能在浓缩咖啡中做到这一点 我还想根据其之前的状态来切换复选框 开关 起初 我尝试用此方法打开

随机推荐

  • 从 VSIX 命令调用 Roslyn

    从 EnvDTE ProjectItem 获取 Roslyn 的 SyntaxTree 的最佳方法是什么 我找到了另一种方法 Roslyn s Document into ProjectItem 我从打开的文档中调用了 VSIX 命令 我想
  • JDBC/数据库单元测试的最佳实践[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有与多个数据库 如 Sybase Postgress DB2 等 通信的代码 因此 我有不同的模块 对每个数据库都有不同的查询 我开始使用 H
  • 调用OData服务时发送授权cookie

    我有 2 个网络应用程序 第一个 Web 应用程序包含 ASP NET 网页并使用成员资格提供程序进行身份验证 第二个 Web 应用程序严格来说是一个需要身份验证的 OData WEB API 站点 两个站点在 Web 配置中具有相同的 m
  • 为什么我无法运行android模拟器? java.io.IOException:错误=13,权限被拒绝

    我已经按照 android 网站告诉我的那样安装了所有内容 并且在创建我的 avd 后我不断得到的是 Failed to start emulator Cannot run program home hevel eclipse androi
  • DataError:没有使用平均聚合函数但不使用总和的数字类型?

    我想知道是否有人可以帮助解释使用 agg 的以下行为 import numpy as np import pandas as pd import string 初始化数据框 df pd DataFrame data list string
  • DataTables 警告:从行“0”的数据源请求未知参数“0”

    有人知道下面这个非常简单的 HTML 文件有什么问题吗 我只是想用对象数组 http datatables net release datatables examples ajax objects html作为 DataTables 的数据
  • 检查正在使用的应用程序版本[重复]

    这个问题在这里已经有答案了 可能的重复 如何向用户显示我的App当前的项目版本 https stackoverflow com questions 1492351 how to display the current project ver
  • Google 表格搜索值并返回存在该值的多行的某些列

    我正在寻找一个可以执行以下操作的公式 在 E I 列中查找一个值 并从该值所在的行中返回 B D 列中的所有值 示例 寻找S190202 它将从第 2 5 6 行返回 B D QUERY A1 I select B C D where E
  • 在持续集成中运行的测试中应如何设置功能切换?

    使用功能切换时如何进行测试 您希望您的开发计算机尽可能接近生产 从我观看的视频来看 功能切换的实现方式是允许某些人 使用 该功能 即 0 到 100 的用户或选定的用户等 为了正确进行持续集成 在测试时是否必须使用与生产服务器相同的功能切换
  • jquery 从 DOM 获取非唯一 ID

    假设我有这两个唯一 ID 的 div 其输入元素不是唯一 ID 的输入 div div
  • 列表视图中的多重绑定

    我有一个包含几列的 ListView 我可以将每个 GridViewColumn 绑定到一个属性 例如
  • 为什么align-end在vuetify中不起作用

    我使用 vuetify 布局 我想在右侧制作按钮 但我发现align end这是 vuetify 属性不起作用 我使用offset xs9使按钮位于右侧 但按钮位于中间v flex 怎样才能做到最后呢 帮助谢谢 代码如下 div div
  • 如何获取textView可以在Android中显示的数字线

    我想知道 textView 可以显示的数轴 我可以在一行中获取数字字符 int maxVisibleChars textView getPaint breakText text true textView getMeasuredWidth
  • Meteor Subscribe 不更新集合的排序顺序

    Snippet from Template div class post container each elements gt post element this each div Snippet from Client Meteor su
  • 哪个更高效?更多核心或更多 CPU

    我意识到这更多的是一个硬件问题 但这也与软件非常相关 特别是在多线程多核 CPU 环境编程时 哪个更好 为什么 无论是效率 速度 生产力 可用性等 1 具有 4 个四核 CPU 的计算机 服务器 or 2 具有 16 个单核 CPU 的计算
  • 取消指纹扫描仪

    我正在开发一个具有安全功能 包括 PIN 和指纹 的程序 但现在我在输入密码 PIN 或指纹 时遇到问题 加入正确的指纹没问题 但是当我输入 PIN 码时 在退出 PIN 和指纹活动后 机器会继续侦听指纹 我知道这一点 因为当我单击 主页
  • Laravel 选项选择 - 默认问题

    这是我的选择框 所有公司都将加载到这里 但我想将特定公司显示为默认选择我在会议上有这个 这是我的代码 sessioncompany ABCcompany comp Company foreach company list as row en
  • 如何通过 HTML 输入标签获取文件的引用? (角度2)

    我想在 Firebase 中上传图片 但要做到这一点 我必须先获取文件 例如 如何通过 HTML 获取我的计算机的图像 我正在尝试这样做 但我不知道这样做的回报是什么 帮帮我吧伙计们
  • 为什么 t-sql 的 LEN() 函数忽略尾随空格?

    MSDN上LEN 函数的说明 http msdn microsoft com en us library ms190329 aspx 返回指定字符串表达式的字符数 排除尾随空格 为什么 LEN 函数设计成这样工作 这种行为解决了什么问题 有
  • Android素材L图像过渡插值器

    这更多的是一个数学问题而不是编程问题 好吧 我想问一下你知道Material design中描述的插值器是什么 它看起来是一个AccelerateDecelerateInterpolator但减速效果衰减较慢 我最好的孵化是 public