相关疑难解决方法(0)

显示动画GIF

我想在我的应用程序中显示动画GIF图像.正如我发现的那样,Android本身并不支持动画GIF.

但是它可以使用AnimationDrawable显示动画:

开发>指南>图像和图形> Drawables概述

该示例使用在应用程序资源中保存为帧的动画,但我需要的是直接显示动画gif.

我的计划是将动画GIF分解为帧并将每个帧添加为可绘制到AnimationDrawable.

有谁知道如何从动画GIF中提取帧并将它们转换为Drawable

java android animated-gif

254
推荐指数
13
解决办法
37万
查看次数

如何在视图和动态壁纸中拟合GIF动画的内容?

背景

我有一个小型动态壁纸应用程序,我想添加支持它来显示GIF动画.

为此,我找到了各种解决方案.有一种在视图(这里)中显示GIF动画的解决方案,甚至还有一个解决方案,可以在动态壁纸(这里)中显示它.

但是,对于它们两者,我无法找到如何在其所拥有的空间中很好地拟合GIF动画的内容,这意味着以下任何一种情况:

  1. 中心裁剪 - 适合100%的容器(在这种情况下为屏幕),在需要时在侧面(顶部和底部或左侧和右侧)裁剪.不伸展任何东西.这意味着内容似乎很好,但并非所有内容都可能显示出来.
  2. fit-center - 拉伸以适合宽度/高度
  3. center-inside - 设置为原始大小,居中,并且只有在太大时才能拉伸以适合宽度/高度.

问题

这些都不是关于ImageView的,所以我不能只使用scaleType属性.

我发现了什么

有一个解决方案可以为你提供一个GifDrawable(这里),你可以在ImageView中使用它,但在某些情况下它似乎很慢,我无法弄清楚如何在LiveWallpaper中使用它然后适合它.

LiveWallpaper GIF处理的主要代码就是这样(这里):

class GIFWallpaperService : WallpaperService() {
    override fun onCreateEngine(): WallpaperService.Engine {
        val movie = Movie.decodeStream(resources.openRawResource(R.raw.cinemagraphs))
        return GIFWallpaperEngine(movie)
    }

    private inner class GIFWallpaperEngine(private val movie: Movie) : WallpaperService.Engine() {
        private val frameDuration = 20

        private var holder: SurfaceHolder? = null
        private var visible: Boolean = false
        private val handler: Handler = Handler()
        private val drawGIF …
Run Code Online (Sandbox Code Playgroud)

android animated-gif

30
推荐指数
2
解决办法
890
查看次数

如何在Android中玩GIF

您好stackoverflow我正在尝试开发一个Android应用程序来玩我自己的GIF,这里是代码片段

MainActivity.java

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}
}
Run Code Online (Sandbox Code Playgroud)

AnimationView.java

import java.io.ByteArrayOutputStream;
import java.io.InputStream;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Movie;
import android.util.AttributeSet;
import android.view.View;

public class AnimationView extends View {
private Movie mMovie;
private long mMovieStart;
private static final boolean DECODE_STREAM = true;

private int mDrawLeftPos;
private int mHeight, mWidth;

private static byte[] streamToBytes(InputStream is) {
    ByteArrayOutputStream os = new ByteArrayOutputStream(1024);
    byte[] buffer = new byte[1024];
    int …
Run Code Online (Sandbox Code Playgroud)

android android-animation

22
推荐指数
2
解决办法
5万
查看次数

将 gif 添加到 Jetpack Compose 中

我想将一张 gif 放入我的应用程序中。我知道如何插入图像资源,但是当我尝试添加 gif 时,它变成了静态图像。

DrawImage(image = +imageResource(R.drawable.gif))
Run Code Online (Sandbox Code Playgroud)

有没有人尝试过在 Jetpack Compose 中添加 gif,因为很难在网上找到如何添加 gif 文档?

android gif kotlin android-jetpack android-jetpack-compose

19
推荐指数
3
解决办法
2万
查看次数

如何在imageview中显示.gif文件?

我的布局有很多图像视图.我想在一个imageview中显示.gif动画文件.我尝试了Yash方法(在Android中的ImageView中添加gif图像),但.gif文件显示了所有布局.其他观点消失了.

我要展示所有.

任何的想法?

layout android gif animated imageview

13
推荐指数
6
解决办法
5万
查看次数

我可以将GIF格式图像添加为启动画面

如何将GIF格式图像添加为启动画面.我试图添加,但当我添加它.它充当正常图像.我不知道我们是否可以使用Gif图像作为启动画面.如果有任何选项可以使用该GIF格式图像.

android splash-screen gif imageview android-studio

7
推荐指数
1
解决办法
2万
查看次数

Android上的gif动画问题

我需要一些有关动画的建议。我有一个动画GIF,但是如何将Android应用程序变成动画。当我说的时候,它根本没有动。我读了一些有关Android动画的知识,并且需要有动画图片。有什么解决办法吗?

android animated-gif

5
推荐指数
1
解决办法
1万
查看次数

显示带有库的Gif图像

我正在使用此库显示gif图像:https : //github.com/felipecsl/GifImageView

但是我不知道如何在这些代码中实现我的gif图像。我在素材资源文件夹中有一些GifImages。

这是我的代码:

PlayActivity.java:

import android.app.Activity;
import android.os.Bundle;

import com.felipecsl.gifimageview.library.GifImageView;

import java.io.IOException;
import java.io.InputStream;

public class PlayActivity extends Activity{

    GifImageView gifView;
    //byte[] bytes;

    @Override
    protected void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_play_activity);

        try {
            InputStream is = getAssets().open("rain_4.gif");
            byte[] bytes = new byte[is.available()];
            is.read(bytes);
            is.close();

            gifView = (GifImageView) findViewById(R.id.gifImageView);
            gifView = new GifImageView(this);
            gifView.setBytes(bytes);
            gifView.startAnimation();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override
    protected void onStart() {
        super.onStart();
        if(gifView != null) gifView.startAnimation();
    }

    @Override
    protected void …
Run Code Online (Sandbox Code Playgroud)

android gif animated-gif

5
推荐指数
1
解决办法
2万
查看次数

扩展自定义布局类 - 从未使用过构造函数

我正在使用这里给出的GifWebView

我知道主要活动等工作正常,因为我在用于框架布局的XML实现之前测试了它.但是现在我正在使用Frame Layout,我遇到了问题.

我将为您提供我的代码和快速解释:

XML

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <com.example.dencallanan.giftestapp.GifWebView
        android:id="@+id/GWebView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"

        />

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
        android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/editText"
            android:layout_marginBottom="153dp"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:hint="USERNAME" />

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/editText2"
            android:layout_marginTop="58dp"
            android:layout_alignTop="@+id/editText"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:layout_alignLeft="@+id/editText"
            android:layout_alignStart="@+id/editText"
            android:hint="PASSWORD" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Log In"
            android:id="@+id/button"
            android:layout_below="@+id/editText2"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="25dp" />
    </RelativeLayout>


</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

GifWebView

public class GifWebView extends WebView {

    public GifWebView(Context context, String path) {

        super(context);
        loadUrl(path);
    }

    public GifWebView(Context …
Run Code Online (Sandbox Code Playgroud)

java xml android view android-layout

2
推荐指数
1
解决办法
546
查看次数

在Imageview上缩放动画

如何ImageViewFloatingActionButton下面的gif中的动画(显示和隐藏)那样为我设置动画。

FAB在RecylerView滚动动画

android android-animation android-imageview

2
推荐指数
1
解决办法
4361
查看次数