0
我試圖將父容器寬度設置爲VideoView
,然後將高度設置爲保持4:3寬高比。我見過的建議延長VideoView
類和壓倒一切的onMeasure
一些答案,但我不明白,我得到或如何使用它們的參數:基於父寬度的動態視頻視圖高度
package com.example;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.widget.VideoView;
public class MyVideoView extends VideoView {
public MyVideoView(Context context) {
super(context);
}
public MyVideoView (Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyVideoView (Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec) {
Log.i("MyVideoView", "width="+widthMeasureSpec);
Log.i("MyVideoView", "height="+heightMeasureSpec);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
結果(在Nexus 7平板電腦):
02-13 21:33:42.515: I/MyVideoView(12667): width=1073742463
02-13 21:33:42.515: I/MyVideoView(12667): height=1073742303
我想達到以下佈局:
平板(縱向):
- VideoView寬度 - 全屏或近滿屏。
- VideoView高度 - 保持寬高比爲4:3的寬高比
- ListView - 顯示在VideoView下方以選擇要播放的視頻。
平板電腦(橫向):
- 的ListView - 顯示在屏幕的左側,用於選擇要播放的影片。
- VideoView - 出現在屏幕的右側,應該填充剩餘寬度和設置高度以保持4:3寬高比。
我沒有真正擁有視頻的當前尺寸,因爲播放器是在創建選項卡時創建的,然後用戶單擊列表項目播放視頻。視頻可以是640x480或320x240。這似乎工作正常:'int width = getDefaultSize(0,widthMeasureSpec); int height = getDefaultSize(0,heightMeasureSpec); \t setMeasuredDimension(width,width/4 * 3);' – DanielB6 2013-02-14 14:30:56