8
Android VideoViewのサイズを動的に設定しようとしています。私はStackOverflowとインターネットを見てきました。私が見つけた最良の解決策はhereです。私は以下の実装を実装しました:Resize VideoView
public class ResizableVideoView extends VideoView {
public ResizableVideoView(Context c) {
super(c);
}
private int mVideoWidth = 100;
private int mVideoHeight = 100;
public void changeVideoSize(int width, int height) {
mVideoWidth = width;
mVideoHeight = height;
// not sure whether it is useful or not but safe to do so
getHolder().setFixedSize(width, height);
forceLayout();
invalidate(); // very important, so that onMeasure will be triggered
}
public void onMeasure(int specwidth, int specheight) {
Log.i("onMeasure","On Measure has been called");
setMeasuredDimension(mVideoWidth, mVideoHeight);
}
public void onDraw(Canvas c) {
super.onDraw(c);
Log.i("onDraw","Drawing...");
}
}
ビデオは、AndroidエミュレータとMotorola Droid Xで正しくサイズが変更されます。 Motorola Droidでは、VideoViewのサイズは変更されますが、VideoViewで再生されるビデオのサイズは変更されません。 Motorola Droidでは、VideoViewがビデオ再生よりも大きな次元に設定されている場合、黒い背景がVideoViewに表示され、ビデオは黒い背景の上にVideoViewの左上隅に再生されます。
AndroidでVideoViewのサイズを適切に変更するにはどうすればよいですか?
私の実装がこのように動作しますおかげで、 バンス
私はそれをテストします。サイズを変更する代わりにビデオをトリミングします!あなたは何か考えていますか? – boomz
@boomz私は最終的に昨年の夏に実装を作成しました。 [VideoPlayer](https://github.com/Vance-Turner/appinventor-sources/blob/master/appinventor/components/src/com/google/appinventor/components/runtime/VideoPlayer.java)クラスをご覧くださいApp Inventorプロジェクト(昨夏のリサイズコードは私の仕事でした)から –