[英]Strange behavior using Java ternary operator on Android
原因在於三元運算符的工作方式。
它總是將兩個對象都轉換為兩個對象最接近的超類型。 在你的情況下它是BaseInterpolator
,因為你的targetSDK版本設置為23
。
但是,由於你的minSDK是14
,所以演員陣容不適用於所有設備。 因此錯誤。
要修復,您可以向兩個對象添加顯式的TimeInterpolator
轉換。
我通過以下代碼修復此問題:
public class MyDecelerateInterpolator implements Interpolator {
private DecelerateInterpolator interpolator = null;
public MyDecelerateInterpolator() {
interpolator = new DecelerateInterpolator();
}
public MyDecelerateInterpolator(float factor) {
interpolator = new DecelerateInterpolator(factor);
}
@Override
public float getInterpolation(float input) {
return interpolator.getInterpolation(input);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.