什么';Android 5.0(API 21)上可绘制的setHotspot的目的是什么?

什么';Android 5.0(API 21)上可绘制的setHotspot的目的是什么?,android,android-drawable,android-5.0-lollipop,Android,Android Drawable,Android 5.0 Lollipop,查看文档,我们有一个新方法setHotspot(float x,float y),描述如下: 指定热点在可绘制图形中的位置 该页面没有其他解释,我想知道它的用途是什么。热点用于将触摸事件导入RippleDrawable,但也可用于自定义绘图。如果要实现一个管理自己的drawables的自定义视图,则需要从drawableHotspotChanged()方法调用setHotspot(),以使以触摸为中心的涟漪正常工作 从View.java: @Override public boolean onT

查看文档,我们有一个新方法
setHotspot(float x,float y)
,描述如下:

指定热点在可绘制图形中的位置


该页面没有其他解释,我想知道它的用途是什么。

热点用于将触摸事件导入RippleDrawable,但也可用于自定义绘图。如果要实现一个管理自己的drawables的自定义视图,则需要从drawableHotspotChanged()方法调用setHotspot(),以使以触摸为中心的涟漪正常工作

从View.java:

@Override
public boolean onTouchEvent(MotionEvent event) {
    ...
            case MotionEvent.ACTION_MOVE:
                drawableHotspotChanged(x, y);
    ...
}


/**
 * This function is called whenever the view hotspot changes and needs to
 * be propagated to drawables managed by the view.
 * <p>
 * Be sure to call through to the superclass when overriding this function.
 *
 * @param x hotspot x coordinate
 * @param y hotspot y coordinate
 */
public void drawableHotspotChanged(float x, float y) {
    if (mBackground != null) {
        mBackground.setHotspot(x, y);
    }
}

我发现了这篇文章(但它是旧的):也许这个热点有相同的意义…通过鼻子,它是点集的坐标作为触觉?
@Override
public void drawableHotspotChanged(float x, float y) {
    super.drawableHotspotChanged(x, y);

    if (mForeground != null) {
        mForeground.setHotspot(x, y);
    }
}