2012-08-30 75 views
0

我有一個VideoView被設置爲填充父級並且可以與全尺寸視頻一起使用,但我發現很難在視頻尺寸爲4:3或更小時找到解決方案,但它保留在視圖左側同樣的應用程序在iOS屏幕上全屏顯示。 我們可以調整視頻大小並顯示與視頻視圖大小相同的大小嗎?還是可以調整視頻大小的內容? 我試圖VideoView內容調整大小

view.measure(View.MeasureSpec.EXACTLY, View.MeasureSpec.EXACTLY); 

,但沒有結果

回答

5

創建自定義視頻類是這樣的:

public class CustomVideoView extends VideoView { 

    protected int _overrideWidth = 480; 

    protected int _overrideHeight = 360; 

    public CustomVideoView(Context context) { 
     super(context); 
    } 

    public CustomVideoView(Context context, AttributeSet set) { 
     super(context, set); 
    } 

    public void resizeVideo(int width, int height) { 
     _overrideHeight = height; 
     _overrideWidth = width; 
     // not sure whether it is useful or not but safe to do so 
     getHolder().setFixedSize(width, height); 
     //getHolder().setSizeFromLayout(); 
     requestLayout(); 
     invalidate(); // very important, so that onMeasure will be triggered 

    } 

    @Override 
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) 
    { 
     setMeasuredDimension(_overrideWidth, _overrideHeight); 
    } 

} 

在你的類使用resizeVideo方法與屏幕寬度和高度的參數。

考慮到這一切都取決於電影比例和屏幕比例。如果它們相同,則視頻將全屏顯示,但當它們不同時,視頻會根據寬度/高度進行調整。

+0

何時何地使用resizeVideo()?我的意思是,我會如何知道比率是否有差異,是否有任何方法? –

+1

謝謝!這個'resizeVideo'函數應該是'VideoView'的一部分 –