Circular RecyclerView - 在滚动时旋转和翻译列表项

问题描述

在滚动时,我想旋转和平移这些列表项,使它们仍然以圆形方式存在。我制作了一个自定义视图,并使用 Here 中的旋转和平移来覆盖这些方法。但是旋转有点奇怪且非圆形。 这就是我想要实现的

enter image description here

@Override
protected void dispatchDraw(Canvas canvas) {
    canvas.save();
    int top = getTop();

    float rotate = calculateAngle(top,recyclerViewHeight);
    Matrix m = canvas.getMatrix();
    m.preTranslate(-2 / getWidth(),-2 / getHeight());
    m.postRotate(rotate);
    m.postTranslate(2 / getWidth(),2 / getHeight());
    canvas.concat(m);
    super.dispatchDraw(canvas);
    canvas.restore();

}

private float calculateAngle(int top,float height) {
    float result = 0f;
    float fullAngleFactor= 60f;
    if (top < height / 2f) {
        result = (top - (height / 2f)) / (height / 2f) * fullAngleFactor;
    } else if (top > height / 2f) {
        result = (top - (height / 2f)) / (height / 2f) * fullAngleFactor;
    }
    return result;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)