Проблемы с выпуском GIF для Android

В моем файле activity_main.xml у меня есть следующий блок кода, потому что я хочу использовать его для анимации моего GIF-файла.

<matthewallenlinsoftware.keepy_uppy.PlayGifView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/viewGif" android:layout_gravity="center" android:layout_weight="0.04" android:src="@drawable/bouncing_ball" /> 

Анимация GIF отлично работает, но это вызывает проблемы с рендерингом в Android Studio. Есть ли это для этого?

Код для PlayGifView приведен ниже:

 public class PlayGifView extends View { private static final int DEFAULT_MOVIEW_DURATION = 1000; private int mMovieResourceId; private Movie mMovie; private long mMovieStart = 0; private int mCurrentAnimationTime = 0; @SuppressLint("NewApi") public PlayGifView(Context context, AttributeSet attrs) { super(context, attrs); /** * Starting from HONEYCOMB have to turn off HardWare acceleration to draw * Movie on Canvas. */ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { setLayerType(View.LAYER_TYPE_SOFTWARE, null); } } public void setImageResource(int mvId){ this.mMovieResourceId = mvId; mMovie = Movie.decodeStream(getResources().openRawResource(mMovieResourceId)); requestLayout(); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { if(mMovie != null){ setMeasuredDimension(mMovie.width(), mMovie.height()); }else{ setMeasuredDimension(getSuggestedMinimumWidth(), getSuggestedMinimumHeight()); } } @Override protected void onDraw(Canvas canvas) { if (mMovie != null){ updateAnimtionTime(); drawGif(canvas); invalidate(); }else{ drawGif(canvas); //NULLPTR EXCEPTION } } private void updateAnimtionTime() { long now = android.os.SystemClock.uptimeMillis(); if (mMovieStart == 0) { mMovieStart = now; } int dur = mMovie.duration(); if (dur == 0) { dur = DEFAULT_MOVIEW_DURATION; } mCurrentAnimationTime = (int) ((now - mMovieStart) % dur); } private void drawGif(Canvas canvas) { mMovie.setTime(mCurrentAnimationTime); //NULLPTR EXCEPTION mMovie.draw(canvas, 0, 0); canvas.restore(); } } 

Если вы сохранили GIF в таких папках, как hdpi, xhdpi и т. Д. Скопируйте GIF прямо в «drawable» или попробуйте запустить андроид-студию в качестве администратора …