2012-05-14 89 views
3

我正在使用電影類來播放gif動畫文件,但無法放入屏幕。如何使GIF文件適合Android屏幕尺寸

如何縮放或適合gif文件到屏幕大小?

我已經採用GIF視圖自定義視圖並使用Movie類播放動畫。

+0

您是否找到任何解決方案? – atasoyh

回答

0

我會看看here。涵蓋3種不同的顯示/播放GIF的方式的完整教程。顯然這不是很容易,谷歌仍然存在開放問題報告。祝你好運:)

+0

基本上只是一個鏈接到另一個網站的答案通常不是很有幫助。鏈接也會過時或中斷,那麼你會介意在這裏總結一些重要的內容嗎?具體來說,本教程的任何部分都涉及GIF縮放,因爲這就是這個問題的關鍵。 –

2

如果你正在使用一個畫布(@surface視圖)在它的高度和寬度在gameloop中繪製背景圖像及其值。 如果沒有,

WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); 
Display display = wm.getDefaultDisplay(); 
float tmp = display.getHeight; 

現在tmp目錄將包含顯示高度的價值。寬度相同的葡萄牙語。 使用這些屬性來拉伸gif。

但是我必須說,這種功能已被棄用,必須有一個更好的辦法,這會工作得很好,雖然:)

3

你可以用這個代碼執行此操作:

float scaleWidth = (float) ((screenwidth/(1f*gifwidth)));//add 1f does the trick 
    float scaleHeight = (float) ((screenheight/(1f*gifheight))); 
    canvas.scale(scaleWidth, scaleHeight); 
    mMovie.draw(canvas, 0, 0);//mMovie is my gif picture 
+0

它不起作用。 – Khuong

1

您可以使用逐幀動畫而不是動畫GIF來獲得類似的最終結果和縮放比例。 您需要從gif中提取每個幀,並將單個幀作爲png(或其他支持的格式)文件放置在res/drawable文件夾中。創建和使用動畫繪製:

http://developer.android.com/reference/android/graphics/drawable/AnimationDrawable.html

要縮放動畫, check this

您可以使用各種scaleTypes來使用此方法縮放動畫。

我知道這並不直接回答問題,但它會給出想要的最終結果。