gpt4 book ai didi

android - 在 api 级别 8 中替代 setAlpha

转载 作者:IT王子 更新时间:2023-10-28 23:33:21 25 4
gpt4 key购买 nike

我正在开发一个可以在 FroyoJellyBean 上运行的应用程序。我有一个扩展 PageTransformer 的类,如下所示:

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 level 11 中添加的,而我的 sdk 版本最低为 API level 8。以下是 API 级别 11 中添加的方法:

  1. setAlpha()
  2. setTranslationX()
  3. setScaleX()
  4. setScaleY()

有什么办法可以解决这个问题?

最佳答案

所以,这里有一些解决方案:


setAlphaAnimation ... API 级别 1

AlphaAnimation alpha = new AlphaAnimation(0.7F, 0.7F);
alpha.setDuration(0); // Make animation instant
alpha.setFillAfter(true); // Tell it to persist after the animation ends
view.startAnimation(alpha);

setAlpha INT -> 从 API LEVEL 1 -> 在 16 中弃用

Drawable background = localLinLayout.getBackground();
background.setAlpha(180); //255 is max (visible)

setAlpha FLOAT -> API 级别 11+ ->


setImageAlpha -> API LEVEL 16+(仅用于 ImageViews)

关于android - 在 api 级别 8 中替代 setAlpha,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16755551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com