如何使(矩阵?)永久转换为 RecyclerView
How to make a (matrix?) transformation permanently a RecyclerView
我目前正在使用具有水平 LinearLayout
的 RecyclerView
。 RecyclerView
占满屏幕:
我正在寻找对 RecyclerView
进行修复转换的方法,如下所示:
请注意,转换类似于 "sinking" 或 "downfall" 以产生 "deep" 效果。由于项目的大小可以改变,我需要一个永久的转换,这就是为什么我想在 RecyclerView
有办法吗?也许是 onDraw
上的一种方法 ??
非常感谢您。
此致。
拉斐尔
添加:
我想注意到 PageTransformer
做了类似的事情。事实上,我想要的东西与三星 Galaxy S3 在您使用他们的启动器之一(使用 ViewPager
)滚动时所做的非常相似,但我想修复该转换:
我在尝试什么?
我正在尝试滚动 RecyclerView
的大型水平适配器,但我想 "fold" 一点视图,以便给 "cylinder" 留下一点印象。
制作一个扩展RecyclerView
的class并重载其dispatchDraw
(或draw
)方法,使用Matrix#setPolyToPoly
进行透视变换,如下代码产生类似 "Star Wars" 的效果,您需要调用 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();
}
我目前正在使用具有水平 LinearLayout
的 RecyclerView
。 RecyclerView
占满屏幕:
我正在寻找对 RecyclerView
进行修复转换的方法,如下所示:
请注意,转换类似于 "sinking" 或 "downfall" 以产生 "deep" 效果。由于项目的大小可以改变,我需要一个永久的转换,这就是为什么我想在 RecyclerView
有办法吗?也许是 onDraw
上的一种方法 ??
非常感谢您。
此致。
拉斐尔
添加:
我想注意到 PageTransformer
做了类似的事情。事实上,我想要的东西与三星 Galaxy S3 在您使用他们的启动器之一(使用 ViewPager
)滚动时所做的非常相似,但我想修复该转换:
我在尝试什么?
我正在尝试滚动 RecyclerView
的大型水平适配器,但我想 "fold" 一点视图,以便给 "cylinder" 留下一点印象。
制作一个扩展RecyclerView
的class并重载其dispatchDraw
(或draw
)方法,使用Matrix#setPolyToPoly
进行透视变换,如下代码产生类似 "Star Wars" 的效果,您需要调用 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();
}