AnimationDrawable не работает при вызове start() в кастомном View
Мне необходимо отрисовывать анимацию на кастомной вьюшке, однако она не двигается, в то время как при использовании ImageView все работает, так что animation.xml правильный.
Мой Фрагмент
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
AnimationDrawable drawable = ((GraphicsView) view.findViewById(R.id.GV)).drawable;
drawable.start();
}
Моя вьюшка
public class GraphicsView extends View {
public AnimationDrawable drawable;
public GraphicsView(Context context) {
super(context);
drawable = (AnimationDrawable) ContextCompat.getDrawable(context, R.drawable.animation);
drawable.setBounds(0,0, 1000, 1000);
}
public GraphicsView(Context context, AttributeSet attrs)
{
super(context, attrs);
drawable = (AnimationDrawable) ContextCompat.getDrawable(context, R.drawable.animation);
drawable.setBounds(0,0, 1000, 1000);
}
public GraphicsView(Context context, AttributeSet attrs, int defStyleAttr)
{
super(context, attrs, defStyleAttr);
drawable = (AnimationDrawable) ContextCompat.getDrawable(context, R.drawable.animation);
drawable.setBounds(0,0, 1000, 1000);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
assert drawable!=null;
drawable.draw(canvas);
invalidate();
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
Итак если я использую GraphicsView, анимация не работает, однако если я добавлю в onDraw() drawable.run() вот так:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
assert drawable!=null;
drawable.draw(canvas);
drawable.run();
invalidate();
}
, то анимация будет проигрываться, однако без задержки между кадрами.
фреймы - просто .png файлы.
