任何人都实施了类似下面的carousel
?
注意:不应重复项目列表,在到达最后一项后不应先到达。请帮帮我。
[编辑]
我不想为此使用ListView。 有人帮我这个。感谢...
答案 0 :(得分:4)
这应该让你开始。像这样重写ListView:
private final Transformation mTransformation;
public ListView3d(Context context, AttributeSet attrs) {
super(context, attrs);
if (!isInEditMode()) {
setStaticTransformationsEnabled(true);
mTransformation = new Transformation();
mTransformation.setTransformationType(Transformation.TYPE_MATRIX);
} else {
mTransformation = null;
}
}
@Override
protected boolean getChildStaticTransformation(View child, Transformation t) {
mTransformation.getMatrix().reset();
final int childTop = Math.max(0,child.getTop());
final int parentHeight = getHeight();
final float scale = (float)(parentHeight-(childTop/2))/getHeight();
Log.i("scale",scale+"");
final float px = child.getLeft() + (child.getWidth()) / 2;
final float py = child.getTop() + (child.getHeight()) / 2;
mTransformation.getMatrix().postScale(scale, scale, px, py);
t.compose(mTransformation);
return true;
}
在getChildStaticTransformation中,您可以通过相应地操作矩阵来实现各种效果(甚至是3d)。 一个非常好的教程(使用另一种技术可以找到here。
答案 1 :(得分:1)
这可以使用自定义列表视图来实现。在listactivity中使用适配器将使其成为可能。外观here会让你更清楚。
答案 2 :(得分:0)
您可以使用RecycleView尝试该旋转木马。链接:Carousel DemoProject