2012-12-17 36 views
5

Bây giờ tôi biết làm thế nào để vẽ một bức tranh GIF trong android, đây là mã:làm thế nào để thay đổi kích thước hình ảnh gif trong android

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(); 
} 

}

Cuối cùng, có mã movie.draw(canvas,x,y) , trong đó x và y là tọa độ cho ảnh gif (x = left, y = top). Nhưng làm thế nào tôi có thể thay đổi chiều rộng và chiều cao của bộ phim? Có thể cung cấp cho các tọa độ bên phải và dưới, nhưng làm thế nào, ở đâu? Cảm ơn bạn!

+0

Tôi đoán bạn đã thử canvas.scale()? –

+0

vâng, tôi đã thử, nhưng không có gì thay đổi. Tôi có nghĩa là không có gì trong kích thước, nhưng hình ảnh biến mất, khi tôi thêm phương pháp này. – victorio

Trả lời

14

tôi đã có cùng một vấn đề ở đây là giải pháp của tôi, thêm mã này trong phương pháp onDraw trước movie.draw

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

hoặc

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

Cảm ơn bạn, bạn thực sự đã giúp tôi! – offset

Các vấn đề liên quan