Android自定义View加载gif图片的例子

 更新时间:2016年10月2日 16:23  点击:1829
我们来看一篇关于Android自定义View加载gif图片的例子,这样可以动态的加载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);
}
 
}
中文网址对于许多的地方是不兼容的但只要转换在uft8好像又可以解决了,下面来看一篇安卓中Picasso加载中文网址失败的解决方法,具体如下

写这篇博客之前,也是先感叹一下我水平的一般和思考问题方式的欠缺,这个博客的起因,是项目中遇到的一个问题,服务器返回给我一个带有中文的图片地址,一开始并没感觉到什么不对,因为我的手机可以去加载这样的图片,但是测评中心同事(以下简称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){
    String data="";
    try {
        for(int i=0;i<str.length();i++){
            char c=str.charAt(i);
            if(c+"".getBytes().length>1&&c!=':'&&c!='/'){
                data = data+java.net.URLEncoder.encode(c+"","utf-8");
            }else {
                data=data+c;
            }
        }
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }finally{
        System.out.println(data);
    }
    return  data;
}

下面这段代码的意义是:只对中文进行转码

 代码如下 复制代码

if(c+"".getBytes().length>1&&c!=':'&&c!='/'){
    data = data+java.net.URLEncoder.encode(c+"","utf-8");
}else {
    data=data+c;
}

WebView做一些打包网页app时会经常碰到一些问题,如小编碰到WebView加载有声音的网页时,退出时关闭声音,那么要如何来处理呢。

很简单的一句代码,但是不常用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();
}

分答app是一款可以让用户躺着都能赚钱的实用工具,与值乎不一样,这款软件使用付费问答的方式来获得报酬的,只要你的答案被采纳就会获得相应的报酬,下面我们来看看介绍。

分答是什么?分答付费规则是什么

分答付费规则是什么

分答的游戏规则:用户在分答上介绍自己擅长的领域,设置付费问答的价格,1元到500元之间,其他用户感兴趣就可以付费向其提问,回答必须是语音,时间限制在60秒内。而如果有人对这个问题的答案感兴趣,可以付费1元选择“偷听”,提问者与回答者都可以得到0.5元

分答偷听要多少钱

一般是需要用户花1元钱来选择偷听的,也就是说别人的问答你只需要花1元钱就可以偷听,点击播放了。比如图上王思聪的问答有1913人偷听,也就是说由1913人付费了一元,提问题的和被提问的用户也就获得了这1913元,王思聪单这个问题就截图上来说可以获得956.5元,而且还有更多人在偷听,也就是稳收利润。
[!--infotagslink--]

相关文章

  • Android子控件超出父控件的范围显示出来方法

    下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
  • C#创建自定义控件及添加自定义属性和事件使用实例详解

    这篇文章主要给大家介绍了关于C#创建自定义控件及添加自定义属性和事件使用的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用C#具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-06-25
  • JS实现自定义简单网页软键盘效果代码

    本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
  • Android开发中findViewById()函数用法与简化

    findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20
  • Android模拟器上模拟来电和短信配置

    如果我们的项目需要做来电及短信的功能,那么我们就得在Android模拟器开发这些功能,本来就来告诉我们如何在Android模拟器上模拟来电及来短信的功能。 在Android模拟...2016-09-20
  • 夜神android模拟器设置代理的方法

    夜神android模拟器如何设置代理呢?对于这个问题其实操作起来是非常的简单,下面小编来为各位详细介绍夜神android模拟器设置代理的方法,希望例子能够帮助到各位。 app...2016-09-20
  • android自定义动态设置Button样式【很常用】

    为了增强android应用的用户体验,我们可以在一些Button按钮上自定义动态的设置一些样式,比如交互时改变字体、颜色、背景图等。 今天来看一个通过重写Button来动态实...2016-09-20
  • Android WebView加载html5页面实例教程

    如果我们要在Android应用APP中加载html5页面,我们可以使用WebView,本文我们分享两个WebView加载html5页面实例应用。 实例一:WebView加载html5实现炫酷引导页面大多...2016-09-20
  • 深入理解Android中View和ViewGroup

    深入理解Android中View和ViewGroup从组成架构上看,似乎ViewGroup在View之上,View需要继承ViewGroup,但实际上不是这样的。View是基类,ViewGroup是它的子类。本教程我们深...2016-09-20
  • Android自定义WebView网络视频播放控件例子

    下面我们来看一篇关于Android自定义WebView网络视频播放控件开发例子,这个文章写得非常的不错下面给各位共享一下吧。 因为业务需要,以下代码均以Youtube网站在线视...2016-10-02
  • 自定义jquery模态窗口插件无法在顶层窗口显示问题

    自定义一个jquery模态窗口插件,将它集成到现有平台框架中时,它只能在mainFrame窗口中显示,无法在顶层窗口显示. 解决这个问题的办法: 通过以下代码就可能实现在顶层窗口弹窗 复制代码 代码如下: $(window.top.documen...2014-05-31
  • Android用MemoryFile文件类读写进行性能优化

    java开发的Android应用,性能一直是一个大问题,,或许是Java语言本身比较消耗内存。本文我们来谈谈Android 性能优化之MemoryFile文件读写。 Android匿名共享内存对外A...2016-09-20
  • Android设置TextView竖着显示实例

    TextView默认是横着显示了,今天我们一起来看看Android设置TextView竖着显示如何来实现吧,今天我们就一起来看看操作细节,具体的如下所示。 在开发Android程序的时候,...2016-10-02
  • 自定义feignClient的常见坑及解决

    这篇文章主要介绍了自定义feignClient的常见坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-20
  • pytorch 自定义卷积核进行卷积操作方式

    今天小编就为大家分享一篇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 实现钉钉自动打卡功能的步骤,帮助大家更好的理解和学习使用Android,感兴趣的朋友可以了解下...2021-03-15
  • Android 开发之布局细节对比:RTL模式

    下面我们来看一篇关于Android 开发之布局细节对比:RTL模式 ,希望这篇文章对各位同学会带来帮助,具体的细节如下介绍。 前言 讲真,好久没写博客了,2016都过了一半了,赶紧...2016-10-02
  • PHP YII框架开发小技巧之模型(models)中rules自定义验证规则

    YII的models中的rules部分是一些表单的验证规则,对于表单验证十分有用,在相应的视图(views)里面添加了表单,在表单被提交之前程序都会自动先来这里面的规则里验证,只有通过对其有效的限制规则后才能被提交,可以很有效地保证...2015-11-24
  • jquery自定义插件开发之window的实现过程

    这篇文章主要介绍了jquery自定义插件开发之window的实现过程的相关资料,需要的朋友可以参考下...2016-05-09