android 开发 View _8_ 动态图片自定义View
转载地址:https://blog.csdn.net/mengks1987/article/details/77770922
先来看下效果:

是不是有一种熟悉感,其实这种效果使用序列帧动画也是可以实现的,这里我们介绍下如何使用自定义View实现。 
这是我们的素材,一张图片上有5个京东小哥

我们只需要不停的变换小哥就好了,原理明白了我们看下代码:
public class JDLoadingView extends View {
    private Bitmap bitmap;
    private int index = 0;
    private Paint paint;
    private long lastTime = 0;
    public JDLoadingView(Context context) {
        this(context,null);
    }
    public JDLoadingView(Context context, @Nullable AttributeSet attrs) {
        this(context, attrs,0);
    }
    public JDLoadingView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        this(context, attrs, defStyleAttr,0);
    }
    public JDLoadingView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
        bitmap = BitmapFactory.decodeResource(context.getResources(), R.mipmap.jd);
        paint = new Paint();
    }
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        //第2个和第3个一样的,作图的时候重复了,所以抛弃第二个
        if(index == 2){
            index = 3;
        }
        //计算显示第几个小哥
        int left = bitmap.getWidth()/5*index;
        int top =0;
        int right = bitmap.getWidth()/5*(index+1);
        int bottom = bitmap.getHeight();
        //显示一个京东小哥
        canvas.drawBitmap(bitmap,new Rect(left,top,right,bottom),new Rect(0,0,getWidth(),getHeight()),paint );
        index++;
        //显示到最后一个,再次从头开始显示
        if(index >=5){
            index = 0;
        }
        //100ms以后刷新
        postInvalidateDelayed(100);
    }
}
重点地方加上了注释,只要原理明白了,实现还是很简单的。
android 开发 View _8_ 动态图片自定义View的更多相关文章
- Android开发之制作圆形头像自定义View,直接引用工具类,加快开发速度。带有源代码学习
		作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 博客园主页:http://www.cnblogs.com/mcxiaobing ... 
- Android 开发学习进程0.12   自定义view  activity的属性
		设置类似钉钉或tel的圆形用户名首字母头像 设置有两种方法,一是使用已有的库或自定义的view组件,但如果确定只是文字头像,也可使用textview的backgrou属性,调整资源文件使textvie ... 
- Android绘图机制(二)——自定义View绘制形, 圆形, 三角形, 扇形, 椭圆, 曲线,文字和图片的坐标讲解
		Android绘图机制(二)--自定义View绘制形, 圆形, 三角形, 扇形, 椭圆, 曲线,文字和图片的坐标讲解 我们要想画好一些炫酷的View,首先我们得知道怎么去画一些基础的图案,比如矩形,圆 ... 
- Android绘图机制(一)——自定义View的基础属性和方法
		Android绘图机制(一)--自定义View的基础属性和方法 自定义View看起来,确实看起来高深莫测,很多Android开发都不是特别在行这一块,这里面的逻辑以及一些绘画都是有一点难的,说一下我目 ... 
- Android绘图机制(三)——自定义View的实现方式以及半弧圆新控件
		Android绘图机制(三)--自定义View的三种实现方式以及实战项目操作 在Android绘图机制(一)--自定义View的基础属性和方法 里说过,实现自定义View有三种方式,分别是 1.对现有 ... 
- 自定义View(一),初识自定义View
		看了无数资料,总结一下自定义View 先明白一个自定义View的三大流程 onMeasure() 测量,决定View的大小 onLayout() 布局,决定View在ViewGroup中的位置 onD ... 
- ym——Android开发MVP模式(攻克了View和Model的耦合)
		转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! 什么是MVP呢?它又和我们经常听到的MVC有什么关系了以及差别呢? MVP 是从经典的 ... 
- android开发艺术探索读书笔记之-------view的事件分发机制
		View的点击事件的分发,其实就是对MotionEvent事件的分发过程,即当一个MotionEvent产生后,系统需要把这个事件传递给一个具体的View,而这个过程就是分发过程. 分发过程主要由以下 ... 
- Android中显示gif动态图片
		在android中显示一个静态图片比如png jpg等等都很方便,但是如果要显示一个gif 动态图片就需要进行一些处理. 本文是采用自定义view 然后进行重新onDraw方法来实现 首先自定义Vie ... 
随机推荐
- Learn how to use git
			Git配置 $ git config --global user.name "Your Name" $ git config --global user.email "e ... 
- 使用matlab生成用于ROM初始化的coe文件(转)
			reference:https://www.cnblogs.com/chensimin1990/p/9759368.html t=0:2*pi/2^12:2*pi; y=0.5*sin(t)+0.5; ... 
- 为什么ssh 执行完命令以后 挂了, hang , stop respond
- 关于Java的特点之多态
			多态--概念 所谓多态,就是指一个引用(类型)在不同情况下的多种状态.也可以理解成:多态是指通过指向父类的指针,来调用在不同子类中实现的方法. 实现多态有两种方式:1.继承:2.接口 多态--注意事项 ... 
- centos7 安装php7
			方法一 rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -Uvh https:/ ... 
- 《从Lucene到Elasticsearch:全文检索实战》学习笔记一
			今天,我主要给大家讲一下信息检索概念. 信息检索: 互联网时代的飞速发展使人们进入了信息爆炸时代,据统计全球的互联网用户已达到30亿,在各个网站及移动app在每个分钟 产生的数据量是巨大的,从而导致数 ... 
- day06python 哈希 字典集合嵌套
			1.hash算法 hash算法 :内存中将值进行hash算法得到一个数值存储在内存中,查找也会按照算法进行查找,使用hash算法 执行效率高相对于list的索引查找 (字典,集合):使用的是hash查 ... 
- some working learning总结学习(二)
			2. 读取excel上的测试用例和结果,成json格式,最终存到access数据库 结果如下: { : { 'Req_ID': 'Fqqqqq/qqqqq', 'Case_ID': 'ATC_LvPw ... 
- list实现大整数加法
			#include<iostream> #include<list> #include<string> using namespace std; list<in ... 
- CH5702 Count The Repetitions
			题意 5702 Count The Repetitions 0x50「动态规划」例题 描述 定义 conn(s,n) 为 n 个字符串 s 首尾相接形成的字符串,例如: conn("abc& ... 
