Android 加载gif图,Glide
个人中心
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();
}
}
}
```
在上面的代码中,我们首先使用 `Movie.decodeStream()` 方法加载 GIF 图片,然后设置 ImageView 的宽高为 GIF 图片的宽高。接着,我们使用一个线程不断调用 `ImageView.invalidate()` 方法来刷新 ImageView,从而实现 GIF 图片的播放。最后,在 `onDraw()` 方法中,我们使用 `Movie.draw()` 方法将 GIF 图片绘制到 Canvas 上。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfgegh
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13