七绝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 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100