今天在做guolin大神示例
Android PowerImageView实现,可以播放动画的强大ImageView 的时候遇到了就算把源码中的PowerImageView放进去,在我测试的三星S3机型上也不能显示的问题,找来找去都没发现问题所在,最后终于在源码的AndroidManifest.xml中的Application标签下发现了这样一句话:android:hardwareAccelerated="false",于是就有点明白了,应该是Movie.draw()方法会默认使用硬件加速的绘图。
在API >= 14上,默认是开启的,如果你的应用只是标准的View和Drawable,全局都打开硬件加速,是不会有任何问题的。
然而,硬件加速并不支持所有的2D画图的操作,这时开着它,可能会影响到你的自定义控件或者绘画,出现异常等行为。
因此,因为这个PowerImageView是自定义视图,所以需要取消硬件加速,取消硬件加速的方法有很多级别,这里只取消到Activity级别就可以了,于是在AndroidManifest.xml的相应Activity标签中添加如下代码:
android:hardwareAccelerated="false"
或者我们可以在PowerImageView的构造方法中加入:
setLayerType(View.LAYER_TYPE_SOFTWARE, null);
这样就不会遇到gif图片显示不出来的问题了
如果感兴趣请查看 Android官网相关介绍