【问题标题】:Where calculating RippleDrawable radius wtih RADIUS_AUTO使用 RADIUS AUTO 计算 RippleDrawable 半径
【发布时间】:2020-07-07 12:21:28
【问题描述】:

DocsRadius value that specifies the ripple radius should be computed based on the size of the ripple's container. 但我找不到它计算的确切位置。我试图用调试器把它弄出来,但没有成功。

你能告诉我这个计算是在哪里进行的吗?

【问题讨论】:

    标签: android rippledrawable


    【解决方案1】:

    我找到了。该计算在RippleComponent 类的setup(float, int) 方法中执行:

    public final void setup(float maxRadius, int densityDpi) {
        if (maxRadius >= 0) {
            mHasMaxRadius = true;
            mTargetRadius = maxRadius;
        } else {
            mTargetRadius = getTargetRadius(mBounds); // this place!
        }
    
        mDensityScale = densityDpi * DisplayMetrics.DENSITY_DEFAULT_SCALE;
    
        onTargetRadiusChanged(mTargetRadius);
    }
    

    正是这个类处理涟漪和焦点状态常见的大小和位置。 RippleStateRippleDrawable 都不是。

    【讨论】:

      猜你喜欢
      • 2016-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-07
      • 2012-06-04
      • 2017-04-07
      • 2023-04-06
      相关资源
      最近更新 更多