替代setAlpha在API级别8 [英] Alternative to setAlpha in api level 8
问题描述
我工作的一个应用程序,它可以在升级Froyo
以及软糖
运行。我有一个类扩展PageTransformer如下:
I am working on an app, which can run on Froyo
as well as JellyBean
. I have a class that extends PageTransformer as below:
import android.support.v4.view.ViewPager.PageTransformer;
import android.view.View;
public class ZoomOutPageTransformer implements PageTransformer {
private static float MIN_SCALE = 0.85f;
private static float MIN_ALPHA = 0.5f;
public void transformPage(View view, float position) {
int pageWidth = view.getWidth();
int pageHeight = view.getHeight();
if (position < -1) {
view.setAlpha(0);
} else if (position <= 1) {
float scaleFactor = Math.max(MIN_SCALE, 1 - Math.abs(position));
float vertMargin = pageHeight * (1 - scaleFactor) / 2;
float horzMargin = pageWidth * (1 - scaleFactor) / 2;
if (position < 0) {
view.setTranslationX(horzMargin - vertMargin / 2);
} else {
view.setTranslationX(-horzMargin + vertMargin / 2);
}
view.setScaleX(scaleFactor);
view.setScaleY(scaleFactor);
view.setAlpha(MIN_ALPHA +
(scaleFactor - MIN_SCALE) /
(1 - MIN_SCALE) * (1 - MIN_ALPHA));
} else {
view.setAlpha(0);
}
}
}
问题是,写在这个类中的方法是在加入 API级别11
和我的 API级别8最低SDK版本
。以下是这些添加的API级11的方法:
The problem is, the methods written in this class were added in API level 11
and i have minimum sdk version of API level 8
. The following are those methods that were added in API level 11:
-
setAlpha()
-
setTranslationX()
-
setScaleX()
-
setScaleY()
setAlpha()
setTranslationX()
setScaleX()
setScaleY()
有什么可以为这个问题的解决方案?
What can be the solution for this problem ?
推荐答案
最简单的解决方法是使用 NineOldAndroids 库,反向移植动画所有版本的Android。该使用部分有你如何使用图书馆的例子。
The easiest solution is to use the NineOldAndroids library, which backports the animations to all versions of Android. The Usage section has examples of how you'd use the library.
这篇关于替代setAlpha在API级别8的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!