如何在相对布局中将gif图像显示为背景

时间:2015-12-17 09:24:28

标签: android animation view gif

我有一个动画gif图像,我希望将其显示为相对布局的背景。我使用了一个由视图扩展的活动,并使用了电影类,但它没有解决我的问题。请注意任何建议。

LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:components="http://schemas.android.com/apk/res/com.example.YourPakageName"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<com.example.YourPakageName.GIFView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
components:src="@drawable/congratulations" />
</LinearLayout>

4 个答案:

答案 0 :(得分:2)

你可以使用Glide https://github.com/bumptech/glide

Glide.with(context)
.load(imageUrl)
.asGif()
.placeholder(R.drawable.loading2)
.crossFade()
.into(imageView);

答案 1 :(得分:1)

Android不支持gif。 您可以将GlidePicasso等图片加载器插件用于这些目的。你必须将gif保存在assets文件夹中,或者保存在服务器中。

答案 2 :(得分:0)

是的,您可以设置gif图像,但这不会为您的gif图像设置动画。您需要将gif图像显式提取到所有帧中,然后使用动画将图像设置为gif。 click hear

答案 3 :(得分:0)

如果您想将按钮放在GIF播放之上,这就是代码。 在RelativeLayout下放置第一个带有android的ImageView:layout_width =“match_parent” 机器人:layout_height = “match_parent”  然后根据您的要求另一个ImageView或Button。最后一个显示在GIF之上。然后使用Glide Library来显示。

        <RelativeLayout
            android:id="@+id/rel_music_play"
            android:layout_width="wrap_content"
            android:layout_height="180dp"

            >

     -       <ImageView
            android:id="@+id/imageViewGifPlaying"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop"
            android:layout_centerInParent="true"
             android:src="@drawable/ray_music_icon"
                 />
            <ImageView
                android:id="@+id/btn_play"
                android:layout_width="wrap_content"
                android:layout_height="60dp"
                android:layout_centerInParent="true"
                android:src="@drawable/play_round_icon" />
</RelativeLayout>

Glide.with(this)
    .load(R.drawable.stream_animation)
    .asGif()
    .into(imageViewGifPlaying);