首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android如何显示gif动图:AnimatedImageDrawable

前言 我们知道,Android基础组件ImageView本身是不支持gif动图,所以很长一段时间内,开发者们都是通过三方库或自定义组件来实现gif显示,而且大部分图片加载框架都支持gif,比如Glide...如何使用。...显示 我们知道,直接在ImageView加载gif图是可以显示,但是图不会动。...但是这时候ImageViewDrawable实际上是AnimatedImageDrawable类型,所以我们获取这个Drawable进行操作即可,代码如下: if (Build.VERSION.SDK_INT...() } } } 我们通过两个按钮来分别实现停止和开始,结果如下: 通过运行结果可以看到,当我们停止后再开始,gif动画会从头播放,而不是停止地方继续播放。

4.4K10

详解Glide4.0集成及使用注意事项

) .asBitmap() .load(url) .placeholder(R.drawable.placeholder) //设置资源加载过程占位符....into(imageView); } 2、占位符.placeholder(R.drawable.placeholder)不能用.9图,占位图片和加载目标图片会同时显示,只是目标图片会先显示缩略图...fallback和error还没测试过,有兴趣可以测试看看。 3、加载gif图时,若调用dontAnimate()移除所有动画gif就会加载失败。 4、计算gif播放一次动画时长。...除此之外,glide4.0还去掉了GlideDrawableImageViewTarget类,那我们该如何来计算gif播放一次时长呢?只能从源码找答案了。...-----------------------------------------------------------------------------------*/ /** * 通过字段名对象或对象父类得到字段

1.8K31
您找到你想要的搜索结果了吗?
是的
没有找到

Android开发笔记(十七)GIF动画实现GifAnimation

但在手机上由于系统资源紧张,所以Android并没有直接支持GIF格式,如果在ImageView中放入一张gif文件,你会发现显示出来只是该gif文件第一帧图片。...对于这种情况,Android带来了帧动画技术,通过连续播放每帧图片,从而实现帧动画效果。不过若要使用动画,我们得自己准备好若干帧,然后把这些图片帧编入图片队列,这样才可以显示动画。...对于如何gif文件中提取出每帧图片,博主在之前文章中有做了说明,详见《Android开发笔记(十)常用图片加工操作》。 可是手工分解gif文件也太麻烦了,如果gif数量多的话,岂不累坏了。...不知不觉,我们已经应用了十几个Drawable大半,它们分别是: 1、StateListDrawable:详见《Android开发笔记(七)初识Drawable》 2、ShapeDrawable...点击下载本文用到GIF动画和帧动画工程代码 点此查看Android开发笔记完整目录

1.2K60

Android 逐帧动画Drawable 动画),这一篇就够了

前言 作为 Android 最常见两种动画形式,逐帧动画Drawable 动画),有着极其广泛应用,它原理与早起电影以及 GIF 类似,就是把一张图,按顺序快速切换,这样一来看上去就好像会动一样...这时如果我们采用,将动画封装在一个资源文件,在需要使用时候能够像添加背景图一样简单添加它: 步骤 在 /res/drawable 文件夹下建立一个名为 abunation_list.xml 文件..._1.getDrawable(); animationDrawable.start(); ---- 注意事项 在使用动画时,这里有几个要点需要大家记住: 其一、在我范例代码,大家可以看到...正确使用方法,根据活动运行周期,我们应该在 onResume 方法添加它,这样就保证了所有的控件都被实例化出来, 其二、对与帧动画,我们不建议添加太大图片,因为这很容易导致 OOM,建议大家用...Drawable 动画,去做一些类似,加载动画,WiFi 链接动画这样,占有内存比较小操作。

2.7K20

{Android}一行代码起飞,Glide加载gif优化实践

前言 最近项目中有使用gif动画,加上本身已经引入了Glide 3.7.0(支持gif)库,所以便用Glide来加载了;但在使用过程还是遇到了不少困难, 在此记录下,希望可以给遇到类似问题你一些思考和建议...//不使用默认动画 Glide.with(mContext) .load(url) .dontAnimate() .placeholder(R.drawable.loading_spinner...) .into(circleImageview); 提示:不要再非主线程里面使用Glide加载图片,如果真的使用了,请把context参数换成getApplicationContext 3.加载GIF...).into(mIv); 如果希望加载gif时只加载gif第一帧,把gif当作普通图片一样加载,那么只需要加上asBitmap方法即可 Glide.with(this).load(mGifUrl).asBitmap...diskCacheStrategy(DiskCacheStrategy.SOURCE)时,Gif加载速度会显着提高(其实就是把gif资源缓存到磁盘)->可以解决gif加载慢或加载不出来情况(NONE

10.2K30

Android UI设计与开发之ViewPager仿微信引导界面以及动画效果

这篇要实现是一个仿微信动画效果,虽然这种效果实现在网上到处都有,但是我还是想站在中低端开发者角度去告诉大家是如何实现,当然实现方式有很多,我也只是列出了我认为实现起来比较方便一种方法,希望大家能够受用...(R.id.startBtn); 这是最后一个布局界面一个开始按钮,由于在findvViewById()方法前面忘记使用了view6来调用该方法,以至于模拟器报出空指针异常。...8、实现动画效果入口activity类,在这个类主要实现了点击开始按钮后实现一个动画效果来达到进入另一个界面的目的,该类主要使用动画类。...我会在后面的章节以专题形式来介绍动画这一块类容,所以这里也不再赘述, GuideViewDoor.Java: package com.yangyu.myguideview02; import...mytranslateanim.setDuration(2000); //设置启动时间 anim.setStartOffset(800); //将位移动画添加进动画效果 anim.addAnimation

66241

Android开发之引导页简单实现

一、实现思路 当欢迎页面加载完成时候(一般为动画),即欢迎页面动画加载完成时候,本地存储取出记录是否是第一次进入,然后进入引导页或者主页,如果是第一次就进入引导页,否则进入主页。...引导页布局使用:viewPager实现,可根据需要添加“开始体验”,“跳过”按钮等,布局中下位置可使用imgae设置其drawableshape为oval,作为引导页面的指示器点,根据页面的多少实现动态添加.../** * 两点间间距 */ private int leftMarg; private int widthDpi; /** * 设置适配器--.../把图片添加到集合 imageViews.add(imageView); //添加灰色ImageView point =...new ImageView(this); point.setImageResource(R.drawable.point_gray); //设置点大小

2.3K21

android图片加载库Glide

Glide是一个非常成熟图片加载库,他可以多个源加载图片,如:网路,本地,Uri等,更重要是他内部封装了非常好缓存机制并且在处理图片时候能保持一个低内存消耗。 Glide怎么使用?...默认Bitmap格式是RGB_565 一下是Picasso和Glide加载结果(1920x1080 像素图片被加载到768x432像素imageview): ?...,只要imageview尺寸不一样,那么Glide就会重新加载一次,这时候,它会在加载imageview之前网络上重新下载,然后再缓存。...gif缓存和一般图片也是一样,也是第一次加载时候调整大小,然后缓存。 但是,要注意是,通过测量,我们可以发现gif图片将消耗非常多内存,因此使用时候要慎重。...除了加载gif图片外,Glide还可以解析任何video文件成为一个静态图片。 另一个比较有用特性是,你可以配置显示图片动画,而Picasso只支持一个淡入(fading in)动画效果。

1.8K60

Google推荐图片加载库Glide:最新版使用指南(含新特性)

图片加载和缓存库,它主要专注于大量图片流畅加载,Glide几乎可以胜任任何你需要使用到图片网络拉取,压缩,显示场景。...GlideType 以添加对GIF格式支持为例,只是举例,实际上API已经支持了。 在刚才CustomGlideExtension类中加上: ?...TransitionOptions TransitionOptions决定图片加载完成如何占位符图片(或者之前图片)过渡。 淡入 交叉淡入 不过渡 ?...注意 TransitionOptions是和你要加载资源类型绑定,也就是说,如果你请求一张位图(Bitmap),你就需要使用BitmapTransitionOptions,而不是DrawableTransitionOptions...那么如何在运行修改ImageView尺寸呢?

2.7K30

Android实现仿美团、顺丰快递数据加载效果

我们都知道在Android,常见动画模式有两种:一种是帧动画(Frame Animation),一种是补间动画(Tween Animation)。...帧动画是提供了一种逐帧播放图片动画方式,播放事先做好图像,与gif图片原理类似,就像是在放电影一样。补间动画可以实现View组件移动、放大、缩小以及渐变等效果。...今天我们主要来模仿一下美团中加载数据时小人奔跑动画对话框效果,取个有趣名字就是Running Man,奔跑吧,兄弟!...:drawable[drawable]//加载Drawable对象 android:duration[long]//每一帧动画持续时间(单位ms) android:oneshot[boolean]...) findViewById(R.id.loadingIv); } } 可以看到在代码,我们使用到一个imageview.post(Runnable r)方法,因为帧动画需要不断重画,所以必须在线程运行

60600

Carson带你学Android:手把手教你优雅实现首页-底部Tab导航(菜单栏)

前言 Android开发中使用底部菜单栏频次非常高,主要实现手段有以下: TabWidget 隐藏TabWidget,使用RadioGroup和RadioButton FragmentTabHost...5.0以后TabLayout 最近推出 Bottom navigation 今天带大家来探索下如何用Fragment+FragmentTabHost++ViewPager实现底部菜单栏 目录 总体设计思路...2.ViewPager类需要PagerAdapter适配器类提供数据,与ListView类似 3.Google官方建议ViewPager配合Fragment使用 具体使用请参考我写另外一篇文章:Android...运行时被添加或删除 3.Fragment不能独立存在,它必须嵌入到activity,而且Fragment生命周期直接受所在activity影响。...作用 主要是为了支持更动态、更灵活界面设计(3.0开始引入) 具体使用请参考我写另外一篇文章Android开发:Fragment介绍&使用方法解析 实现步骤 在主xml布局里面定义一个FragmentTabHost

85330
领券