public class SampleView extends View {
private Movie mMovie;
private Bitmap mBitmap;
private Canvas mCanvas;
private long mMovieStart;
private byte[] streamToBytes(InputStream is) {
ByteArrayOutputStream os = new ByteArrayOutputStream(1024);
byte[] buffer = new byte[1024];
int len;
try {
while ((len = is.read(buffer)) >= 0) {
os.write(buffer, 0, len);
}
} catch (java.io.IOException e) {
}
return os.toByteArray();
}
public SampleView(Context context) {
super(context);
setFocusable(true);
InputStream is;
is = context.getResources().openRawResource(R.drawable.aa_gif);
if (true) {
mMovie = Movie.decodeStream(is);
} else {
byte[] array = streamToBytes(is);
mMovie = Movie.decodeByteArray(array, 0, array.length);
}
int w = mMovie.width();
int h = mMovie.height();
Log.i("-------width-------", w+"");
Log.i("-------height-------", h+"");
// int[] pixels = new int[w*h];
mBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
mCanvas = new Canvas(mBitmap);
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(0xFFCCCCCC);
Paint p = new Paint();
p.setAntiAlias(true);
long now = android.os.SystemClock.uptimeMillis();
if (mMovieStart == 0) { // first time
mMovieStart = now;
}
if (mMovie != null) {
int dur = mMovie.duration();
if (dur == 0) {
dur = 1000;
}
int relTime = (int)((now - mMovieStart) % dur);
mMovie.setTime(relTime);
mCanvas.drawColor(0xFFCCCCCC);
mMovie.draw(mCanvas, 0, 0);
Bitmap bitmap = Bitmap.createScaledBitmap(mBitmap, 300, 300, false);
mBitmap.createScaledBitmap(mBitmap, 200, 300, false);
canvas.drawBitmap(bitmap, 100, 200, null);
invalidate();
}
}
}
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SampleView sampleView = new SampleView(this);
setContentView(sampleView);
}
}
分享到:
相关推荐
Android 播放Gif图片动画【源代码】,在Android 中是不支持直接使用Gif 图片关联播放帧动画,Android 提供了另外一种解决的办法,就是使用AnimationDrawable 这一函数使其支持逐帧播放,我们使用一款动画分割软件...
Android的原生控件并不支持播放GIF...我们都知道,在Android中如果想要显示一张图片,可以借助ImageView控件来完成,但是如果将一张GIF图片设置到ImageView里,它只会显示这张图片的第一帧,不会产生任何的动画效果。
android支持gif图片,android本来不支持gif图片,可以使用webview做
一个支持Gif图片以及普通图片预览,支持双击缩放,单机退出,同时可以选择使用jni的形式去高效加载gif或者更更精简的(仅2个类)gif控件 详细介绍请查看博客:http://www.kymjs.com/code/2015/10/18/01/ 运行截图 ...
Android本身不支持gif图片的显示,网上找到的实现gif图片展示的主要是两种方式:使用java实现解码,或者使用编辑工具将gif图片拆分为多张图片,并编写xml文件,以帧动画的形式播放。此demo是第二种方式。
在Android 中是不支持直接使用Gif 图片关联播放帧动画,要将gif图片截取成若干个png图片..
图片转字符图片工具类,支持 Gif 动画。图片旋转、GIF图增加文字等工具类 Picture Character Transfer Picture Tool Class, Gif animation support. Tool classes such as picture rotation, GIF graph adding text ...
Android图片选择器,支持图片或gif、单个和多个图片选择
使用超级方便,轻松配置各种特性 1.适配安卓各种系统,支持android 11 2.图片过大不会引起 oom ...7.支持 gif 图片 8.支持一些常用场景设置:如:是否裁剪、是否预览图片、是否裁剪、是否显示相机、图片是否压缩等
weex android实现本地图片加载image播放gif动画扩展module获取版本号 博客地址:http://blog.csdn.net/codingandroid/article/details/77719557
支持gif显示的view,用jni实现的,编译生成so库后直接xml定义view即可,而且本身不依赖于其他开源项目所以相对下面的ImageViewEx简单的多。
自定义TextView显示Gif,先使用GifDecoder将Gif文件解析成一张张图片,然后通过ImageSpan将图片显示在TextView中,定义一个线程不断刷新图片
重写控件,能加载网络的gif图片,重写onMeasure方法,能正常显示控制大小
Sketch是Android上层强大且全面的图片加载器,除了图片加载的必备功能外,还支持GIF,手势缩放,分块显示超大图片,自动校正图片方向,显示视频片段等功能 示例APP 扫描二维码下载或 特性 支持的特性 多种 URI 支持...
在Android中是不支持GIF图片的,网上有人做了个库来解决这个问题,此源码也是基于这个库做的Demo。
找个Gif图片支持标准。 使用PowerImageView看效果,支持不好。 查找网上其它支持的方法和开源库。 GifImageView 消耗内存过大,运行久了,内存会用尽。 GifAnimationDrawable 有些gif图片显示不全。 修改 ...
本代码包解决了在Android4.3中MMS模块中添加幻灯片附件,在预览幻灯片的时候,gif格式图片不能够正常播放
观察者类,监视GIF是否加载成功 GifFrame.java 里面三个成员:当前图片、延时、下张Frame的链接。 GifDecoder.java 解码线程类 GifView.java 主类,包括常用方法,如GifView构造方法、设置图片源、延迟、绘制等。
雪梦图片浏览器是一款界面简单,功能强大的 ... 支持动态播放Gif图片 支持显示SVG图片 支持格式:JPEG (.jpg);GIF (.gif);PNG (.png);BMP (.bmp);WebP (.webp) (Android 4.0 );SVG (.svg)
集成了android-gif-drawable 1.2.6可以方便的显示gif图片,感谢koral-- 支持手势缩放. 支持手势缩放功能,在PhotoView的基础上进行了优化,增加了滚动条,定位等功能 支持分块显示超大图. 支持分块显示超大图功能,...