- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在通读 RippleDrawable
和 RippleForeground 的实现(软件渲染部分),我已经知道有界意味着波纹有一个掩码。
但我仍然对实现的某些点感到困惑:
为什么执行说 "Bounded ripples don't have enter animations"并简单地跳过它的输入动画?在这种情况下如何启动波纹动画(如果用户没有释放他的触摸所以没有触发退出)?
@Override
protected Animator createSoftwareEnter(boolean fast) {
// Bounded ripples don't have enter animations.
if (mIsBounded) {
return null;
}
...
}
为什么实现选择 nearly constant value (以及为什么 random()
)用于 mBoundedRadius
和 mTargetRadius
?如果用 ColorDrawable
屏蔽的 View 大于该尺寸,它能正常工作吗?
public RippleForeground(RippleDrawable owner, Rect bounds, float startingX, float startingY,
boolean isBounded) {
...
if (isBounded) {
mBoundedRadius = MAX_BOUNDED_RADIUS * 0.9f
+ (float) (MAX_BOUNDED_RADIUS * Math.random() * 0.1);
}
...
}
...
private void computeBoundedTargetValues() {
...
mTargetRadius = mBoundedRadius;
}
最佳答案
对于第一个问题,我通过深入研究提交历史并尝试使用新的 Marshmallow 图像自行找到了答案。答案很简单:
他们移除了有界 RippleDrawable
的(前景)触摸波纹,但没有为无界移除,故意留下这种不一致。
我刚刚在 Android SDK 的 Marshmallow 图像上进行了测试。它被移除了,更糟糕的是,他们在用户第一次触摸屏幕的地方而不是他们的手指离开屏幕的地方留下了退出波纹。
我无法理解这个设计决定,因为它对我来说更像是一种倒退而不是一种改进,但正如在提交日志中,他们相信他们做到了 implement bounded ripple animation , 而不是删除它。
但是对于第二个问题,我还没有得到答案。
关于Android RippleForeground 有界模式实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33054903/
我正在通读 RippleDrawable 和 RippleForeground 的实现(软件渲染部分),我已经知道有界意味着波纹有一个掩码。 但我仍然对实现的某些点感到困惑: 为什么执行说 "Boun
我是一名优秀的程序员,十分优秀!