7

これで、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=左、y=上)。しかし、ムービーの幅と高さを変更するにはどうすればよいでしょうか? 右と下の座標を与えるかもしれませんが、どのように、どこで?ありがとうございました!

4

2 に答える 2

19

私はここで同じ問題を抱えていましたが、これが私の解決策です。movie.draw の前に ondraw メソッドにこのコードを追加してください。

 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 
于 2013-12-13T20:50:18.403 に答える