七绝x 2016-07-18 02:21 采纳率: 0%
浏览 927

关于 Movie播放gif图片的问题

播放与屏幕尺寸大小差不多的图片,用movie显示还正常,但是播放尺寸过大的图片,
    不会自动按照屏幕的比例缩小进行显示,就是只能显示出一部分,其他的都看不见,
    哪位知道怎么改一下就可以了。。。  这是我的代码

    public class GifView extends View {

//表示开始播放gif图片的绝对时间
private long movieStart = 0;
//movie对象管理gif图片里面的多个帧
private Movie movie;

public GifView(Context context, AttributeSet attrs) {
    super(context, attrs);
}
public GifView(Context context) {
    super(context);
}

@Override
protected void onDraw(Canvas canvas) {
    if (movie != null) {
        long currentTime = System.currentTimeMillis();
        // 第一次画
        if (movieStart == 0) {
            movieStart = currentTime;
        }
        int duration = movie.duration();
        int relTime = (int) ((currentTime - movieStart) % duration);
        movie.setTime(relTime);
        movie.draw(canvas, (getWidth()-movie.width())/2,(getHeight()-movie.height())/2);
        // 强制重绘
        invalidate();
    }

    //如果只想播放一次,只需判断currentTime-movieStart的值大于duration就不重绘即可

    super.onDraw(canvas);
}
public void setMovie(String path){
    if(path.equals("")){
        movie=null;
    }else{
        movie=Movie.decodeFile(path);
    }
}

}

  • 写回答

3条回答 默认 最新

  • Robot-C 2016-07-18 02:34
    关注

    在使用movie播放gif格式图片的时候,一般播放资源图片没什么问题:
    InputStream is=null;
    Movie movie = null;

    is=context.getResources().openRawResource(R.drawable.test_gif);
    movie = Movie.decodeStream(is);

    但是播放本地图片的......
    答案就在这里:Movie播放gif图片出现的问题
    ----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

    评论

报告相同问题?

悬赏问题

  • ¥15 想问一下stata17中这段代码哪里有问题呀
  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决