Android应用启动时未显示GIF

时间:2019-05-14 10:52:55

标签: java android gif

我在尝试在应用程序中使用的GIF遇到麻烦。当我运行我的应用程序时,它只是没有出现。我遵循了有关如何使其工作的教程,因此我不知道为什么不起作用。我也没有收到任何错误消息。所以,我的问题是,有人对此有何建议吗? 预先感谢您的帮助!

我的代码:

buildscript {

    repositories {
        mavenCentral()
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.2'



    }
}

allprojects 
{
    repositories
 {
        mavenCentral()
        google()
        jcenter()


    }
}


App build script:

dependencies {


    implementation  'pl.droidsonroids.gif:android-gif-drawable:1.2.16'
}

XML:
    <pl.droidsonroids.gif.GifImageView
        android:layout_width="match_parent"
        android:layout_height="60dp"
        app:srcCompat="@drawable/gif" />

2 个答案:

答案 0 :(得分:1)

我强烈建议您改为实施Lottie。它支持另一种格式和自动播放功能。

https://github.com/airbnb/lottie-android

<com.airbnb.lottie.LottieAnimationView
            android:id="@+id/lavSplash"
            app:lottie_rawRes="@raw/splash"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            style="@style/Widget.Custom.Lottie"/>

<style name="LottieAppearance">
        <item name="lottie_loop">true</item>
        <item name="lottie_autoPlay">true</item>
        <item name="android:layout_width">@dimen/wrap_content</item>
        <item name="android:layout_height">@dimen/wrap_content</item>
</style>

<style name="Widget.Custom.Lottie" parent="LottieAppearance" />

答案 1 :(得分:1)

请尝试:

 XML:

   <pl.droidsonroids.gif.GifImageView
                android:id="@+id/gif_view_offer"
                android:layout_gravity="center"
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:layout_marginTop="20dp"
                android:src="@drawable/checkmark"
                android:layout_marginBottom="10dp"/>




 JAVA:

       GifImageView gifView;
                GifDrawable gifFromResource = null;

                gifView = (GifImageView) v.findViewById(R.id.gif_view_offer);
                try {
                    gifFromResource = new GifDrawable(activity.getResources(), R.drawable.lockgif);
                    gifView.setImageDrawable(gifFromResource);
                } catch (IOException e) {
                    gifView.setVisibility(View.GONE);
                    e.printStackTrace();
                }