如何在进度条中使用gif图片
How to use gif image in progress bar
我已经尝试了所有代码,但我找不到如何在我的进程栏中使用此 (GIF) 图像的解决方案
XML 文件
<ProgressBar
android:id="@+id/progressBar"
style="@style/GenericProgressIndicator"
android:layout_width="fill_parent"
android:layout_height="200px"
android:layout_centerInParent="true"
android:visibility="visible"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:indeterminateDrawable="@drawable/animation" >
</ProgressBar>
JAVA 文件
ProgressBar bar=(ProgressBar)findViewById(R.id.progressBar);
想在进度条中使用这个图片
这是一个技巧,而不是一个完整的解决方案
我在透明背景的警告对话框中将 gif 作为图像加载
并在进程开始时显示此警告对话框并在结束时关闭它。
但是也看看这个:
您不需要使用 ProgressBar 来显示 GIF,除非您想使用 ProgressBar 提供的特殊功能(看起来不像)。
使用简单的ImageView和一些支持GIF的图片库(eg Glide)就足够了。
- 首先将您的 Gif 图像转换为 png 切片图像序列。
- 将您的进度条声明为图像视图。
<ImageView
android:id="@+id/ivProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:visibility="visible" />
- 使用从 gif 生成的 .png 序列图像在可绘制文件夹中创建一个 .xml 文件。
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item
android:drawable="@mipmap/wblod_0"
android:duration="40" />
<item
android:drawable="@mipmap/wblod_1"
android:duration="40" />
<item
android:drawable="@mipmap/wblod_2"
android:duration="40" />
<item
android:drawable="@mipmap/wblod_3"
android:duration="40" />
<item
android:drawable="@mipmap/wblod_4"
android:duration="40" />
<item
android:drawable="@mipmap/wblod_5"
android:duration="40" />
<item
android:drawable="@mipmap/wblod_6"
android:duration="40" />
<item
android:drawable="@mipmap/wblod_7"
android:duration="40" />
<item
android:drawable="@mipmap/wblod_8"
android:duration="40" />
<item
android:drawable="@mipmap/wblod_9"
android:duration="40" />
<item
android:drawable="@mipmap/wblod_10"
android:duration="40" />
<item
android:drawable="@mipmap/wblod_11"
android:duration="40" />
</animation-list>
- 在你的 activity 中设置这样的代码。
private AnimationDrawable animationDrawable;
private ImageView mProgressBar;
mProgressBar.setBackgroundResource(R.drawable.loading_web_animation);
animationDrawable =(AnimationDrawable)mProgressBar.getBackground();
mProgressBar.setVisibility(View.VISIBLE);
animationDrawable.start();
mProgressBar.setVisibility(View.GONE);
animationDrawable.stop();
我已经尝试了所有代码,但我找不到如何在我的进程栏中使用此 (GIF) 图像的解决方案
XML 文件
<ProgressBar
android:id="@+id/progressBar"
style="@style/GenericProgressIndicator"
android:layout_width="fill_parent"
android:layout_height="200px"
android:layout_centerInParent="true"
android:visibility="visible"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:indeterminateDrawable="@drawable/animation" >
</ProgressBar>
JAVA 文件
ProgressBar bar=(ProgressBar)findViewById(R.id.progressBar);
想在进度条中使用这个图片
这是一个技巧,而不是一个完整的解决方案 我在透明背景的警告对话框中将 gif 作为图像加载 并在进程开始时显示此警告对话框并在结束时关闭它。
但是也看看这个:
您不需要使用 ProgressBar 来显示 GIF,除非您想使用 ProgressBar 提供的特殊功能(看起来不像)。
使用简单的ImageView和一些支持GIF的图片库(eg Glide)就足够了。
- 首先将您的 Gif 图像转换为 png 切片图像序列。
- 将您的进度条声明为图像视图。
<ImageView
android:id="@+id/ivProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:visibility="visible" />
- 使用从 gif 生成的 .png 序列图像在可绘制文件夹中创建一个 .xml 文件。
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item
android:drawable="@mipmap/wblod_0"
android:duration="40" />
<item
android:drawable="@mipmap/wblod_1"
android:duration="40" />
<item
android:drawable="@mipmap/wblod_2"
android:duration="40" />
<item
android:drawable="@mipmap/wblod_3"
android:duration="40" />
<item
android:drawable="@mipmap/wblod_4"
android:duration="40" />
<item
android:drawable="@mipmap/wblod_5"
android:duration="40" />
<item
android:drawable="@mipmap/wblod_6"
android:duration="40" />
<item
android:drawable="@mipmap/wblod_7"
android:duration="40" />
<item
android:drawable="@mipmap/wblod_8"
android:duration="40" />
<item
android:drawable="@mipmap/wblod_9"
android:duration="40" />
<item
android:drawable="@mipmap/wblod_10"
android:duration="40" />
<item
android:drawable="@mipmap/wblod_11"
android:duration="40" />
</animation-list>
- 在你的 activity 中设置这样的代码。
private AnimationDrawable animationDrawable;
private ImageView mProgressBar;
mProgressBar.setBackgroundResource(R.drawable.loading_web_animation);
animationDrawable =(AnimationDrawable)mProgressBar.getBackground();
mProgressBar.setVisibility(View.VISIBLE);
animationDrawable.start();
mProgressBar.setVisibility(View.GONE);
animationDrawable.stop();