Chi*_*oni 18 android android-2.2-froyo android-4.2-jelly-bean
我工作的一个应用程序,它可以运行在Froyo和JellyBean.我有一个扩展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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,在这个类中编写的方法被添加进来API level 11,我有最小的sdk版本API level 8.以下是API级别11中添加的那些方法:
setAlpha()setTranslationX()setScaleX()setScaleY()这个问题可以解决什么问题?
cV2*_*cV2 51
所以,这里的一些决议:
setAlphaAnimation ... API LEVEL 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);
Run Code Online (Sandbox Code Playgroud)
setAlpha INT - >从API LEVEL 1 - >在16中弃用
Drawable background = localLinLayout.getBackground();
background.setAlpha(180); //255 is max (visible)
Run Code Online (Sandbox Code Playgroud)
setAlpha FLOAT - > API Level 11+ - >
setImageAlpha- > API LEVEL 16+(仅用于ImageViews)
ian*_*ake 16
最简单的解决方案是使用NineOldAndroids库,它将动画向后移植到所有版本的Android." 使用"部分提供了有关如何使用库的示例.
| 归档时间: |
|
| 查看次数: |
16255 次 |
| 最近记录: |