ฉันกำลังพยายามกำหนดขนาดของ Android VideoView แบบไดนามิก ฉันได้ดู StackOverflow และอินเทอร์เน็ตแล้ว และวิธีแก้ปัญหาที่ดีที่สุดที่ฉันพบคือจาก ที่นี่ ฉันได้วางการใช้งานไว้ด้านล่าง:
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 ที่ด้านบนของพื้นหลังสีดำ
เราจะปรับขนาด VideoView อย่างถูกต้องใน Android ได้อย่างไร
ขอบคุณแวนซ์