Android自定义View加载gif图片的例子
申明:本博客无图无真相,但是我亲测可以加载出来,假设出现只能加载一帧的情况,请在布局中加:
代码如下 | 复制代码 |
android:layerType="software" |
下面是自定义View的代码:
代码如下 | 复制代码 |
package cn.zmit.foot.listviewfoot; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Movie; import android.os.Handler; import android.os.Message; import android.os.SystemClock; import android.util.AttributeSet; import android.util.Log; import android.view.View; import android.widget.ImageView; import java.io.InputStream; /** * Created by Administrator on 2016/6/15 0015. */ public class MyImageView extends View { private Movie mMovie; public MyImageView(Context context) { super(context,null); } public MyImageView(Context context, AttributeSet attrs) { super(context, attrs); InputStream is = getResources().openRawResource(R.raw.img); mMovie = Movie.decodeStream(is); } long mMovieStart = 0; @Override public void draw(Canvas canvas) { long curTime = android.os.SystemClock.uptimeMillis(); if (mMovieStart == 0) { mMovieStart = curTime; } if (mMovie != null) { int duraction = mMovie.duration(); int relTime = (int) ((curTime - mMovieStart) % duraction); mMovie.setTime(relTime); mMovie.draw(canvas, 0, 0); invalidate(); } super.draw(canvas); } } |
写这篇博客之前,也是先感叹一下我水平的一般和思考问题方式的欠缺,这个博客的起因,是项目中遇到的一个问题,服务器返回给我一个带有中文的图片地址,一开始并没感觉到什么不对,因为我的手机可以去加载这样的图片,但是测评中心同事(以下简称T女士&她&T)将一个加载不出来图片的手机扔给我,我看了以下我的手机,很正常,所以我下意识的说,你这手机有问题吧,实际上,很多时候我们都会产生这样的想法,界内称之为”甩锅”。
我抱着T的手机有问题的心态,过了几天,但是BUG还是挂在debug平台上,我又不得不去查看原因(最起码找到原因,然后接着甩锅最好),我确实找到了原因,那就是服务器返回的网址,带有中文,可能部分手机无法去自动转码,所以,就加载不出来。接着,找到了原因,我又想把锅甩给客户,”让客户不要输入中文路径!”,现在想想,确实过分了。
以上是对我自己的批评,也是告诫一下同事们、同学们,遇到问题,可能你真的感觉这不是你的问题,你解决不了,但是其实,你不知道的领域内,解决这个问题的方法很多。
好了,废话说完了,接下来说这篇博客的重点:对中文字符串进行URL转码:
比如这个网址:/00-120片丽相如/150130145416383首图-150×125.jpg,在某些手机上是加载不出来的(原因不详),经过研究,转换为如下形式则可以加载出来:
/00-120%E7%89%87%E4%B8%BD%E7%9B%B8%E5%A6%82/150130145416383%E9%A6%96%E5%9B%BE-150×125.jpg
方法如下:
代码如下 | 复制代码 |
public static String utf8Togb2312(String str){ |
下面这段代码的意义是:只对中文进行转码
代码如下 | 复制代码 |
if(c+"".getBytes().length>1&&c!=':'&&c!='/'){ |
很简单的一句代码,但是不常用WebView的话,可能会忘记。在此标记一下,防止忘记,也给不知道的朋友提供帮助
webView.destroy();
在你需要销毁WebView的时候调用它。
当ListView里面有WebView,怎么办?
我有一个方法如下:
定义一个静态的List,泛型为WebView;
public static List<WebView>webs=new ArrayList<>();
在ListView的getView方法内,这样做:
webs.add(webview);
在你需要销毁WebView的地方,这样做:
for(int i=0;i< webs.size();i++){
webs.get(i).destroy();
}
分答付费规则是什么
分答的游戏规则:用户在分答上介绍自己擅长的领域,设置付费问答的价格,1元到500元之间,其他用户感兴趣就可以付费向其提问,回答必须是语音,时间限制在60秒内。而如果有人对这个问题的答案感兴趣,可以付费1元选择“偷听”,提问者与回答者都可以得到0.5元
分答偷听要多少钱
相关文章
- 下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
- 这篇文章主要给大家介绍了关于C#创建自定义控件及添加自定义属性和事件使用的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用C#具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-06-25
- 本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
Android开发中findViewById()函数用法与简化
findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20- 如果我们的项目需要做来电及短信的功能,那么我们就得在Android模拟器开发这些功能,本来就来告诉我们如何在Android模拟器上模拟来电及来短信的功能。 在Android模拟...2016-09-20
- 夜神android模拟器如何设置代理呢?对于这个问题其实操作起来是非常的简单,下面小编来为各位详细介绍夜神android模拟器设置代理的方法,希望例子能够帮助到各位。 app...2016-09-20
- 为了增强android应用的用户体验,我们可以在一些Button按钮上自定义动态的设置一些样式,比如交互时改变字体、颜色、背景图等。 今天来看一个通过重写Button来动态实...2016-09-20
- 如果我们要在Android应用APP中加载html5页面,我们可以使用WebView,本文我们分享两个WebView加载html5页面实例应用。 实例一:WebView加载html5实现炫酷引导页面大多...2016-09-20
- 深入理解Android中View和ViewGroup从组成架构上看,似乎ViewGroup在View之上,View需要继承ViewGroup,但实际上不是这样的。View是基类,ViewGroup是它的子类。本教程我们深...2016-09-20
- 下面我们来看一篇关于Android自定义WebView网络视频播放控件开发例子,这个文章写得非常的不错下面给各位共享一下吧。 因为业务需要,以下代码均以Youtube网站在线视...2016-10-02
- java开发的Android应用,性能一直是一个大问题,,或许是Java语言本身比较消耗内存。本文我们来谈谈Android 性能优化之MemoryFile文件读写。 Android匿名共享内存对外A...2016-09-20
- 自定义一个jquery模态窗口插件,将它集成到现有平台框架中时,它只能在mainFrame窗口中显示,无法在顶层窗口显示. 解决这个问题的办法: 通过以下代码就可能实现在顶层窗口弹窗 复制代码 代码如下: $(window.top.documen...2014-05-31
- TextView默认是横着显示了,今天我们一起来看看Android设置TextView竖着显示如何来实现吧,今天我们就一起来看看操作细节,具体的如下所示。 在开发Android程序的时候,...2016-10-02
- 这篇文章主要介绍了自定义feignClient的常见坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-20
- 这篇文章主要介绍了Vue 组件复用多次自定义参数操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-27
- 今天小编就为大家分享一篇pytorch 自定义卷积核进行卷积操作方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-05-06
android.os.BinderProxy cannot be cast to com解决办法
本文章来给大家介绍关于android.os.BinderProxy cannot be cast to com解决办法,希望此文章对各位有帮助呀。 Android在绑定服务的时候出现java.lang.ClassCastExc...2016-09-20- 这篇文章主要介绍了Android 实现钉钉自动打卡功能的步骤,帮助大家更好的理解和学习使用Android,感兴趣的朋友可以了解下...2021-03-15
- 下面我们来看一篇关于Android 开发之布局细节对比:RTL模式 ,希望这篇文章对各位同学会带来帮助,具体的细节如下介绍。 前言 讲真,好久没写博客了,2016都过了一半了,赶紧...2016-10-02
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
YII的models中的rules部分是一些表单的验证规则,对于表单验证十分有用,在相应的视图(views)里面添加了表单,在表单被提交之前程序都会自动先来这里面的规则里验证,只有通过对其有效的限制规则后才能被提交,可以很有效地保证...2015-11-24