昨天我向市场上载了一个应用程序,我不得不将uses-sdk android:minSdkVersion="4"项添加到清单文件中。添加此项目后,我的ViewFlipper小部件出现了奇怪的行为。如果没有minSdkVersion,则Flipper View 使用的动画没有问题,添加后将忽略它们,或者至少看起来没有使用动画。我还用minSdkVersion =“8”进行了测试,但可惜的是它并没有帮助动画生效。还尝试添加两个:(uses-sdk android:minSdkVersion="4" android:targetSdkVersion="8"),相同的行为。从清单中删除minSdkVersion项(本地测试)可使ViewFlipper像一个饰物一样工作。 Market不允许我上传清单中没有minSdkVersion项目的APK。

有人知道这是怎么回事吗?在我看来,这确实是一种奇怪的行为,并且确实降低了该应用程序的质量/用户体验。如果有人知道如何解决此问题,请提供帮助。

我如何使用脚蹼翻阅内容的代码片段。

// call for the flipper to show the next item
flipper.setInAnimation(AnimationHelper.inFromLeftAnimation());
flipper.setOutAnimation(AnimationHelper.outToRightAnimation());
flipper.showNext();

// animation example method
public static Animation inFromRightAnimation() {
  Animation inFromRight = new TranslateAnimation(
  Animation.RELATIVE_TO_PARENT, +1.0f,
  Animation.RELATIVE_TO_PARENT, 0.0f,
  Animation.RELATIVE_TO_PARENT, 0.0f,
  Animation.RELATIVE_TO_PARENT, 0.0f);
  inFromRight.setDuration(150);
  inFromRight.setInterpolator(new AccelerateInterpolator());
  return inFromRight;
}

// XML: current Android manifest config for minSdkVersion
<uses-sdk android:minSdkVersion="4"
 android:targetSdkVersion="8"
/>

谢谢大家,最诚挚的问候,
米佳

最佳答案

实际上,我遇到了与您上面说的类似的问题。将minSdkVersion设置为4或更高时,将降低每个动画的性能。基准日志表明,Animation.applyTransformation和Animation.getTransformation之间的第一次时间间隔从3-6ms变为100-200ms,这很重要,但是我没有时间检查更多的源代码来找出原因。现在,我正在使用的解决方案是将minSdkVersion设置为3或以下。错误的代码,但是可行,希望有用。

10-07 19:50
查看更多