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
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
Anladım. Başka bir yaklaşım bir çeviriY/translationX animasyonu kullanmak olacaktır. – craya
Bu yaklaşım döndürme görünümleri için işe yarar mı? Bildiğim kadarıyla, çeviri animasyonu – adnan