Slayt giriş/çıkış animasyonu ile parça işlemi gerçekleştirmeye çalışıyorum. En az 14 sdk üzerinde geliştiriyorum, bu yüzden ObjectAnimator benim için tek seçenektir (başka bir yol var mı? çeviri animasyonu anladığım kadar uygun değil).FragmentTransacation giriş/çıkış animasyonu> 4 performansta
Kod çok basit:
AnimationView.java - xml en
<?xml version="1.0" encoding="utf-8"?>
<set>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:propertyName="yFraction"
android:valueType="floatType"
android:valueFrom="-1"
android:valueTo="0"
android:duration="600"/>
üzerinden & yılında sarmalayıcı sınıf
public class AnimationView extends LinearLayout {
public AnimationView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public float getYFraction() {
return getHeight();
}
public void setYFraction(float yFraction) {
final int height = this.getHeight();
setY((height > 0) ? (yFraction * height) : -9999);
}
}
kaydırın Eğer ben özel özellik yFraction kullanılan görebileceğiniz gibi 210
<?xml version="1.0" encoding="utf-8"?> <set> <objectAnimator xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:propertyName="yFraction" android:valueType="floatType" android:valueFrom="0" android:valueTo="1" android:duration="600"/>
Animasyonlar, mükemmel çalışır. Ama performans çok kötü ... Bazı tabletlerde, animasyon sırasında yatay bir beyaz çizgi (yaklaşık 3 px yükseklik) fark ettim, diğer akıllı telefon cihazında sadece yavaşlamaya (yavaş ama Flickering değil) gitti. Ben valueFrom & valueTo görünüm boyutunu sığdırmak için, ancak ilk başta jenerik değil ve
bazı seviniriz tüm görünümler için genel olması 1'e 0 olması gerekiyorsa
bunu düzeltmek için bir yol bulmuş android 14 ve üstü üzerinde uygulamak için başka bir yolu varsa bana yardımcı olabilir veya bana söyleyebilir.
Teşekkürler.