2

我目前正在使用RecyclerView具有水平LinearLayout. 占据整个RecyclerView屏幕:

在此处输入图像描述

我正在寻找对这样的修复转换的方法RecyclerView

在此处输入图像描述

请注意,转换就像“下沉”或“垮台”以产生“深”的效果。由于项目的大小可以改变,我需要一个永久的转变,这就是为什么我想在RecyclerView

有什么办法吗?也许有办法做到这一点onDraw

非常感谢您提前。

问候。

拉斐尔。


添加

我想注意到它PageTransformer做了类似的事情。事实上,我想要的东西与三星 Galaxy S3 在您使用其启动器之一(使用ViewPager)滚动时所做的非常相似,但我想修复该转换:

在此处输入图像描述


我在尝试什么?

我正在尝试滚动 的大型水平适配器RecyclerView,但我想“折叠”一点视图以对“圆柱体”产生一点印象。

4

1 回答 1

2

制作一个扩展RecyclerView并覆盖其dispatchDraw(或draw)方法的类,用于Matrix#setPolyToPoly进行透视转换,下面的代码会产生类似“星球大战”的效果,您需要调用setPolyToPoly两次并Matrix在自定义视图的两半上应用:

    @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        final float DELTAX = w * 0.15f;
        float[] src = {
                0, 0, w, 0, w, h, 0, h
        };
        float[] dst = {
                0, 0, w, 0, w - DELTAX, h, DELTAX, h
        };
        matrix.setPolyToPoly(src, 0, dst, 0, 4);
    }

    @Override
    protected void dispatchDraw(Canvas canvas) {
        canvas.save();
        canvas.concat(matrix);
        super.dispatchDraw(canvas);
        canvas.restore();
    }
于 2015-11-13T12:45:57.550 回答