我使用的是安卓的CoverFlow,并能正常工作的大多数设备,但它似乎在安卓4.0.3它不会把中心图像回到中心一旦你来回滑动。
他们仍然“坚持”和错误的角度下。
有没有人有类似的问题? 什么可能导致此行为?
因此,附加的图像上中间的图像应居中,而不是倾斜的,它是。
我使用的是安卓的CoverFlow,并能正常工作的大多数设备,但它似乎在安卓4.0.3它不会把中心图像回到中心一旦你来回滑动。
他们仍然“坚持”和错误的角度下。
有没有人有类似的问题? 什么可能导致此行为?
因此,附加的图像上中间的图像应居中,而不是倾斜的,它是。
我只是说
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;
您使用的尼尔·戴维斯的CoverFlow的Widget V2?
如果是的话,我发现了这个问题。 如果没有,我很抱歉,我不能帮你。
问题是在功能getCenterOfView。 更准确,这是一个关于view.getLeft问题()。 < - 请告诉我,如果有人知道它为什么4.0后是不同的
从view.getLeft()的返回值是在每个时间不同。 因此,这将影响到另一个功能getChildStaticTransformation,它不能找到它的ImageView为中心。
我的解决办法,一个肮脏的修复,是给一个范围,它检测到它的中心。
if (childCenter <= mCoveflowCenter + 125
&& childCenter >= mCoveflowCenter - 125) {
transformImageBitmap((ImageView) child, t, 0);
}
请让我知道如果任何人有这个更好的解决办法。
我决定跟随这名代码
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();