个人中心
DownLoad
Android 可以使用 Glide、Picasso、Fresco 等第三方库来加载 gif 图。
以 Glide 为例,可以按照以下步骤加载 gif 图:
1. 在 build.gradle 文件中添加 Glide 的依赖:
```
dependencies {
implementation 'com.github.bumptech.glide:glide:4.12.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'
}
```
2. 在布局文件中添加 ImageView 控件:
```
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
```
3. 在代码中使用 Glide 加载 gif 图:
```
Glide.with(this).load(R.drawable.gif_image).into(imageView);
```
其中,R.drawable.gif_image 是 gif 图片的资源 id。
如果需要设置 gif 图片的属性,可以使用 RequestOptions:
```
RequestOptions options = new RequestOptions()
.placeholder(R.drawable.placeholder)
.error(R.drawable.error)
.override(300, 300)
.centerCrop();
Glide.with(this)
.load(R.drawable.gif_image)
.apply(options)
.into(imageView);
```
其中,placeholder 和 error 是占位图和错误图,override 是设置图片的大小,centerCrop 是设置图片的缩放类型。
Android 原生支持 GIF 图片的加载,可以使用 `Movie` 类来加载和播放 GIF 图片。
以下是加载 GIF 图片的示例代码:
```java
public class MainActivity extends AppCompatActivity {
private ImageView mImageView;
private Movie mMovie;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mImageView = findViewById(R.id.imageView);
// 加载 GIF 图片
InputStream inputStream = getResources().openRawResource(R.raw.sample_gif);
mMovie = Movie.decodeStream(inputStream);
// 设置 ImageView 的宽高
mImageView.setMinimumWidth(mMovie.width());
mImageView.setMinimumHeight(mMovie.height());
// 开始播放 GIF 图片
new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
runOnUiThread(new Runnable() {
@Override
public void run() {
mImageView.invalidate();
}
});
}
}
}).start();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
long now = android.os.SystemClock.uptimeMillis();
if (mMovieStart == 0) {
mMovieStart = now;
}
if (mMovie != null) {
int duration = mMovie.duration();
if (duration == 0) {
duration = 1000;
}
int relTime = (int) ((now - mMovieStart) % duration);
mMovie.setTime(relTime);
mMovie.draw(canvas, 0, 0);
invalidate();
}
}
}
```文章来源:https://www.toymoban.com/news/detail-629886.html
在上面的代码中,我们首先使用 `Movie.decodeStream()` 方法加载 GIF 图片,然后设置 ImageView 的宽高为 GIF 图片的宽高。接着,我们使用一个线程不断调用 `ImageView.invalidate()` 方法来刷新 ImageView,从而实现 GIF 图片的播放。最后,在 `onDraw()` 方法中,我们使用 `Movie.draw()` 方法将 GIF 图片绘制到 Canvas 上。文章来源地址https://www.toymoban.com/news/detail-629886.html
到了这里,关于Android 加载gif图,Glide的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!