android_gif_drawable(播放gif图片)

来源:互联网 发布:淘宝直播截图抽奖技巧 编辑:程序博客网 时间:2024/06/01 08:35

Android一行代码实现网络加载GIF闪图(附源码)

发表于2016/7/13 18:02:50  612人阅读

分类: Bamboy ImageView

最近项目有个需求是要从网络加载GIF闪图, 
但是Android原生的ImageView并不支持Gif。。。

于是从网上看了些Dome, 
发现总是有些这样那样的问题, 
譬如: 
☹ 没有缓存,还要自己写一大堆缓存代码 × 
☹ 有些是自定义控件,是支持了闪图,但静态图却十分尴尬地显示不了了 × 
☹ 通过Movie类辅助,这样就会多出来好大一堆代码,最后显示出来的Gif不是太大,就是太小 × 
☹ ……就不一个一个列举了,心累。。。

功夫不负有心人, 
终于赶在项目上线之前让我给找到了! 
相比之下, 
这个方案优点真的诱人: 
☺ 自带缓存,简单方便快捷 √ 
☺ Android原生ImageView,自动分辨 Gif、jpg、png全兼容 √ 
☺ 图片不被拉伸,自动适应控件宽高大小 √

那么废话不多说, 
咱这就开始吧。

第一步: 
把我项目libs下的glide-3.7.0.jar导入到你的项目里。

第二步: 
写XML, 
很简单, 
就一个ImageView

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent">    <ImageView        android:id="@+id/img"        android:layout_width="300dp"        android:layout_height="200dp"        android:layout_centerInParent="true"/></RelativeLayout>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

第三步: 
Java代码, 
同样很简单, 
实例化

public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        // 图片链接        String imgUrl = "http://ww1.sinaimg.cn/mw690/805fa900jw1f5q2lmksttg20c8058qv5.gif";        // 图片控件        ImageView img = (ImageView) findViewById(R.id.img);    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

第四步: 
最关键的一步, 
如果你看过其他的解决方案, 
再来看这个方案的话, 
估计你会感动哭的。

因为, 
只!有!一!句!话!!! 
真!的!只!!有!!一!!句!!话!!!

// 加载图片Glide.with(this).load(imgUrl).centerCrop().placeholder(R.drawable.load_ing).crossFade().into(img);
  • 1
  • 2

不难理解, 
第一个参数【this】就是指Activity自身咯; 
第二个参数【imgUrl】就是图片的链接,不管是不是gif; 
第三个参数【R.drawable.load_ing】是图片加载出来之前的默认图; 
第四个参数【img】当然就是要显示图片的ImageView咯。

哦对了, 
AndroidManifest里千万别忘了给权限, 
否则图片出不来别怪我。

<!-- 网络权限 --><uses-permission android:name="android.permission.INTERNET"></uses-permission><!--往sdcard中写入数据的权限 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission><!--在sdcard中创建/删除文件的权限 --><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

好了, 
就到这里吧, 
尘少的老规矩, 
附源码: http://download.csdn.net/download/qq_24515359/9575320

0 0
原创粉丝点击