java - 如何在android中更改gif图片大小

标签 java android android-canvas animated-gif

现在我知道如何在android中绘制GIF图片了,下面是代码:

public class GIFView extends View{        
private Movie movie;  
private InputStream is;  
private long moviestart;  
public GIFView(Context context) {  
    super(context);
    is=getResources().openRawResource(R.drawable.anim_cerca);  
    movie=Movie.decodeStream(is);
}  

@Override  
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    long now=android.os.SystemClock.uptimeMillis();  

    if (moviestart == 0) 
        moviestart = now;  

    int relTime = (int)((now - moviestart) % movie.duration());
    movie.setTime(relTime);
    movie.draw(canvas,10,10);
    this.invalidate();
}  

最后是movie.draw(canvas,x,y)代码,其中x和y是gif图片的坐标(x=left,y=top) .但是我怎么能改变电影的宽度和高度呢?也许给出右侧和底部坐标,但是如何,在哪里?谢谢!

最佳答案

我遇到了同样的问题,这是我的解决方案, 在ondraw方法中添加这段代码在movie.draw之前

 canvas.scale((float)this.getWidth() / (float)movie.width(),(float)this.getHeight() /      (float)movie.height());

canvas.scale(1.9f, 1.21f);//this changes according to screen size 

关于java - 如何在android中更改gif图片大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13924183/

相关文章:

android - 更新 ADT 后创建 AVD 时出错,解析 devices.xml 时出错

Java - 在打印详细信息窗口中显示应用程序名称而不是 "Java Printing"

java - 尝试自动右键单击并选择第一个选项 "Open the link in a new tab"

android - "Too many attribute references"警告

Android App 编译不生成包资源

java - 我得到 java.lang.StackOverflowError : stack size 8MB when i draw my canvas

java - 向下转型的对象指向哪里?

java - 将图像加载到滚动 Activity 时出现内存不足错误

Android 在 Canvas 中拖放/旋转位图

java - Android Canvas : make a drawn line fade/alphaAnimation away on touch