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);
}
 
}
时间: 2024-09-20 05:39:00

Android自定义View加载gif图片的例子的相关文章

android的imageloader加载默认图片不能使用.9图片吗?

问题描述 android的imageloader加载默认图片不能使用.9图片吗? .showImageForEmptyUri(R.drawable.default_ico) .showImageOnFail(R.drawable.default_ico) .showImageOnLoading(R.drawable.default_ico) 我使用的图片是.9图片.目的是无论图片多大,加载图片时,图片中央有固定大小APP的logo.可是在imageloader加载中不起作用.中间的LOGO大小还

JS实现的自定义显示加载等待图片插件(loading.gif)_javascript技巧

本文实例讲述了JS实现的自定义显示加载等待图片插件.分享给大家供大家参考,具体如下: 在工作中遇到了一个问题 -- 某个业务流程分为几个阶段,每个阶段如果在数据没有显示出来之前就要显示加载图片loading.gif文件,如果有数据了就消失.为此,自己写了一个方法,方便整个工程使用. <button onclick="show()">show</button> <button onclick="hide()">hide</bu

Android开屏布局-加载广告图片和倒计时的布局

  一个android开屏布局,用于加载广告图片和倒计时的布局,设置LayoutParams,划分额外空间比例为6分之5(具体权重比例可根据自己需求自定义),异步加载广告图片,相关的Android代码,有兴趣的参考:

Android中Glide加载圆形图片和圆角图片实例代码

一.简介: 介绍两种使用 BitmapTransformation 来实现 Glide 加载圆形图片和圆角图片的方法.Glide 并不能直接支持 Round Pictures ,需要使用 BitmapTransformation 来进行处理. 二.网上的实现方式 这里介绍下网上常见的方式和使用 RoundedBitmapDrawable 两种方法,本质上是差不多的: 使用 Canvas 和 Paint 来绘制 使用 Android.support.v4.graphics.drawable.Rou

Android自定义View基础开发之图片加载进度条_Android

学会了Paint,Canvas的基本用法之后,我们就可以动手开始实践了,先写个简单的图片加载进度条看看. 按照惯例,先看效果图,再决定要不要往下看: 既然看到这里了,应该是想了解这个图片加载进度条了,我们先看具体用法,再看自定义View的实现: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:custom="http://schemas.android.co

Android自定义ProgressDialog加载图片_Android

为了提高用户体验,我们肯定希望该Dialog能更加炫酷,让用户看着更舒服.那如何做呢,当然是我们自己定义一个ProgressDialog了. 一.使用系统加载框 mDialog = new ProgressDialog(this); mDialog.setCancelable(true);//是否可以被取消 mDialog.setMessage("loading...");//加载显示的信息 mDialog.setProgressStyle(ProgressDialog.STYLE_S

Android自定义ProgressDialog加载图片

为了提高用户体验,我们肯定希望该Dialog能更加炫酷,让用户看着更舒服.那如何做呢,当然是我们自己定义一个ProgressDialog了. 一.使用系统加载框 mDialog = new ProgressDialog(this); mDialog.setCancelable(true);//是否可以被取消 mDialog.setMessage("loading...");//加载显示的信息 mDialog.setProgressStyle(ProgressDialog.STYLE_S

Android有效解决加载大图片时内存溢出的问题

尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图, 因为这些函数在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存. 因此,改用先通过BitmapFactory.decodeStream方法,创建出一个bitmap,再将其设为ImageView的 source, decodeStream最大的秘密在于其直接调用JNI>>nativeDecodeAsse

最近较流行的效果 Android自定义View实现倾斜列表/图片_Android

先看看效果图: 实现思路:擦除图片相应的角,然后层叠图片,产生倾斜效果 代码实现: 1.定义属性 在values文件夹下的attrs文件添加以下代码 <resources> <declare-styleable name="TiltView"> <attr name="type" format="integer" /> </declare-styleable> </resources>