Android 在SurfaceView的onMeasure()中,如何计算当前视图的大小
在我的android视频播放器中,如何设置视频的大小,使其适合视图 我已经创建了一个自定义视图。在overriden onMeasure中,我正在考虑计算显示视频的CustomView的大小 然后在setMeasuredDimensionwidth,height;中传递这些尺寸 我没有遇到过任何其他手动设置视频尺寸的方法 谢谢完美的例子,或者看看这个Android 在SurfaceView的onMeasure()中,如何计算当前视图的大小,android,android-mediaplayer,Android,Android Mediaplayer,在我的android视频播放器中,如何设置视频的大小,使其适合视图 我已经创建了一个自定义视图。在overriden onMeasure中,我正在考虑计算显示视频的CustomView的大小 然后在setMeasuredDimensionwidth,height;中传递这些尺寸 我没有遇到过任何其他手动设置视频尺寸的方法 谢谢完美的例子,或者看看这个 @Override protected void onMeasure(int widthMeasureSpec, int heightMeasur
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int desiredWidth = 100;
int desiredHeight = 100;
int widthMode = MeasureSpec.getMode(widthMeasureSpec);
int widthSize = MeasureSpec.getSize(widthMeasureSpec);
int heightMode = MeasureSpec.getMode(heightMeasureSpec);
int heightSize = MeasureSpec.getSize(heightMeasureSpec);
int width;
int height;
//Measure Width
if (widthMode == MeasureSpec.EXACTLY) {
//Must be this size
width = widthSize;
} else if (widthMode == MeasureSpec.AT_MOST) {
//Can't be bigger than...
width = Math.min(desiredWidth, widthSize);
} else {
//Be whatever you want
width = desiredWidth;
}
//Measure Height
if (heightMode == MeasureSpec.EXACTLY) {
//Must be this size
height = heightSize;
} else if (heightMode == MeasureSpec.AT_MOST) {
//Can't be bigger than...
height = Math.min(desiredHeight, heightSize);
} else {
//Be whatever you want
height = desiredHeight;
}
//MUST CALL THIS
setMeasuredDimension(width, height);
}
希望它能有所帮助