2016-03-24 31 views
0

ben ben projemde var imageview için döndürme animasyonu yapmak bulundu bu özel görünüm sınıf var çalışmıyor:Özel görünüm

public class RotatedTitle extends ImageView 
{ 
private float angleRotation; 

public RotatedTitle(Context context) 
{ 
    super(context); 
} 

public RotatedTitle(Context context, AttributeSet attrs) 
{ 
    super(context, attrs); 
} 

public RotatedTitle(Context context, AttributeSet attrs, int defStyle) 
{ 
    super(context, attrs, defStyle); 
} 

public void setAngleRotation(float angleRotation) 
{ 
    this.angleRotation = angleRotation; 
    postInvalidate(); 
} 

@Override 
protected void onDraw(Canvas canvas) 
{ 

    Rect clipBounds = canvas.getClipBounds(); 
    canvas.save(); 
    canvas.rotate(angleRotation, clipBounds.exactCenterX(), clipBounds.exactCenterY()); 
    super.onDraw(canvas); 
    canvas.restore(); 
    postInvalidate(); 

} 
} 

Sonra benim ana projede bunu böyle sesleniyorum:

RotatedTitle to = (RotatedTitle) findViewById(R.id.rotate); 
    to.setAngleRotation(10); 

hiçbir şey olmuyor! Görüntüyü ekranda çizilecek şekilde aldım ama hiçbir animasyon gerçekleşmiyor. Invalidate() 'yi postInvalidate() olarak değiştirmeye çalıştım ama hiçbir şey işe yaramadı. Tam olarak sorun nerede? neden herhangi bir döndürme animasyonu alamıyorum!

bir görünümü döndürmek için çalışıyorsanız, size

cevap

0

ederiz RotateAnimation sınıfını kullanın. Bu kullanım için tasarlandı. http://developer.android.com/reference/android/view/animation/RotateAnimation.html

+0

tarafından sağlanan sadece RotateAnimation() sınıfını kullanabilirsiniz: dokümanlarını görün. RotationAnimation'ın yaptığı şey kendi etrafında olmayan bir daire etrafında dönüyormuş gibi. – adnan

+0

Anladım. Başka bir yaklaşım bir çeviriY/translationX animasyonu kullanmak olacaktır. – craya

+0

Bu yaklaşım döndürme görünümleri için işe yarar mı? Bildiğim kadarıyla, çeviri animasyonu – adnan

0

Ama SDK

önce, amacım imageview daire içinde döndürmek yapmak olduğunu yaptılar
ImageView image = (ImageView) findViewById(R.id.imageView); 
Animation anim = new RotateAnimation(0.0f, 10.0f, pivotX, pivotY); 
an.setDuration(5000);    
an.setFillAfter(true);   

image.setAnimation(anim); 
+0

rotasyonunu izlemek için kullanılırAnimasyon bana aradığım amacı vermiyor. Sadece kendi merkezinin etrafındaki görünümü döndürür. Bir çevrede döndürmek için resme sahip olmak gibi başka bir rotasyon türüne sahip olmak istiyorum – adnan

İlgili konular