Şu anda bir ölçek animasyon uygulayarak bir ImageView var. Bu görünüm, layout_height ve wrap_content olarak ayarlanan layout_width olan göreceli bir düzen içinde yer almaktadır. Sorun, animasyon başladığında görüntüyü ana düzeninden daha büyük kılar ve görüntü kesilir. Bunun etrafında zaten var mı? -Android: Animasyon ebeveyn görünümü tarafından kırpılmış
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dip"
android:layout_gravity="center_horizontal">
<ImageView
android:id="@+id/imgO"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/circle"/>
</RelativeLayout>
</LinearLayout>
java dosyası -
ImageView imgO;
ScaleAnimation makeSmaller;
ScaleAnimation makeBigger;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.titlescreen);
//Animation
imgO = (ImageView)findViewById(R.id.imgO);
makeSmaller = new ScaleAnimation((float)10.0, (float)1.0, (float)10.0, (float)1.0, Animation.RELATIVE_TO_SELF, (float)0.5, Animation.RELATIVE_TO_SELF, (float)0.5);
makeSmaller.setAnimationListener(new MyAnimationListener());
makeSmaller.setFillAfter(true);
makeSmaller.setDuration(500);
makeBigger = new ScaleAnimation((float)1.0, (float)10.0, (float)1.0, (float)10.0, Animation.RELATIVE_TO_SELF, (float)0.5, Animation.RELATIVE_TO_SELF, (float)0.5);
makeBigger.setAnimationListener(new MyAnimationListener());
makeBigger.setFillAfter(true);
makeBigger.setDuration(750);
imgO.startAnimation(makeBigger);
}
class MyAnimationListener implements AnimationListener {
public void onAnimationEnd(Animation animation) {
ScaleAnimation sa = (ScaleAnimation)animation;
if (sa.equals(makeSmaller))
imgO.startAnimation(makeBigger);
else
imgO.startAnimation(makeSmaller);
}
public void onAnimationRepeat(Animation animation) {
}
public void onAnimationStart(Animation animation) {
}
}
Teşekkür
xml dosyası: Burada
çalışan bir örnektir.
excelent anwser! XML kullanıyorsanız, kodunuzu da temizleyebilirsiniz: android: clipChildren = "false" – Ricky
Teşekkürler, eğer bu düğmelerdeyse, onClickListener olaylarını nasıl saklarsınız? Benimki yok oluyor. – tricknology
Üstün cevap! Teşekkürler! Değinmek gerekirse, ana ebeveyn (root düzeni) üzerinde clipChildren'i "false" olarak ayarlamak yeterlidir. – daxgirl