0
我有一個使用Movie
對象繪製Canvas
對象的gif。 gif的分辨率爲1920x1080像素,但只能填滿屏幕的四分之一左右。我如何才能將它擴展到屏幕上,爲什麼它已經這樣做了,因爲GIF的尺寸是1920x1080?Android:Gif不填充屏幕
這裏是我繪製gif並初始化對象的代碼。
public SplashEnvironment(Context context, Activity act) {
super(context);
getHolder().addCallback(this);
this.act = act;
InputStream is = context.getResources().openRawResource(+ R.drawable.resized);
mMovie = Movie.decodeStream(is);
System.out.println(mMovie.width() + "x" + mMovie.height());
System.out.println(getWidth() + "x" + getHeight());
}
public void draw(Canvas canvas) {
if(canvas != null) {
super.draw(canvas);
Paint p = new Paint();
p.setAntiAlias(true);
long now = android.os.SystemClock.uptimeMillis();
if(mMovieStart == 0)
mMovieStart = now;
if(mMovie != null) {
int dur = mMovie.duration();
if(dur == 0)
dur = 3000;
int relTime = (int)((now - mMovieStart) % dur);
mMovie.setTime(relTime);
mMovie.draw(canvas, 0, 0);
act.runOnUiThread(new Runnable() {
public void run() {
invalidate();
}
});
}
}
}
然後我有另一個問題,儘管不太重要。當我在windows中查看gif時,速度更快更平滑,但當它在手機上繪製時,速度會更慢並且更加分散。爲什麼這個問題能解決?