6

我正在使用 android coverflow,它在大多数设备上都可以正常工作,但似乎在 Android 4.0.3 中,一旦你来回滑动,它就不会将中心图像放回中心。

他们仍然“卡住”并且处于错误的角度。

有没有人有类似的问题?什么可能导致这种行为?

所以附加图像上的中间图像应该居中而不是像原来那样倾斜。

CowerFlow 问题

4

3 回答 3

17

我刚刚添加

child.invalidate() 

final int childCenter = getCenterOfView(child); in getChildStaticTransformation(View child, Transformation t) 

所以它变成了

protected boolean getChildStaticTransformation(View child, Transformation t) {

    child.invalidate();
    final int childCenter = getCenterOfView(child);
    final int childWidth = child.getWidth();
    int rotationAngle = 0;
于 2012-11-19T15:02:15.147 回答
3

您在使用 Neil Davies Coverflow Widget V2 吗?

如果是,我发现了问题。如果没有,对不起,我帮不了你。

问题出在函数 getCenterOfView 中。更准确的说,是view.getLeft()的问题。<--请告诉我是否有人知道为什么它在 4.0 之后有所不同

view.getLeft() 返回的值每次都不同。所以这会影响另一个函数getChildStaticTransformation,它找不到哪个imageview是中心。

我的解决方案,一个肮脏的修复,是给它一个范围来检测它的中心。

if (childCenter <= mCoveflowCenter + 125
            && childCenter >= mCoveflowCenter - 125) {
        transformImageBitmap((ImageView) child, t, 0);
}

请让我知道是否有人对此有更好的解决方案。

于 2012-11-06T06:37:50.950 回答
2

我解决了这个代码

private int offsetChildrenLeftAndRight() {
    int offset = 0;
    for (int i = getChildCount() - 1; i >= 0; i--) {

        getChildAt(i).offsetLeftAndRight(offset);

        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN)
            getChildAt(i).invalidate();
    }
    return offset;
}


final int childCenter = getCenterOfView(child) + offsetChildrenLeftAndRight();
于 2012-11-08T17:58:01.800 回答