has*_*man 27 video android android-videoview
使用VideoView可以为Android设置比例因子吗?默认情况下,视频视图会自行调整大小以适应视频的编码分辨率.我可以强制Android将视频渲染为更小或更大的矩形吗?
Mic*_*zuk 57
(我知道这是一个非常古老的问题,但还有另一种控制尺寸的方法,这里没有描述,也许有人会发现它有用.)
在布局中声明自己的MyVideoView类并编写自己的onMeasure()方法.以下是如何将视频拉伸到原始View的尺寸:
public class MyVideoView extends VideoView {
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int width = getDefaultSize(0, widthMeasureSpec);
int height = getDefaultSize(0, heightMeasureSpec);
setMeasuredDimension(width, height);
}
}
Run Code Online (Sandbox Code Playgroud)
Adi*_*ain 11
我发现,当一个VideoView被放置在里面的RelativeLayout,视频伸展两者的高度和宽度,以适应VideoView的指定的高度和宽度(不考虑视频的纵横比的).但是,当我将VideoView放在FrameLayout中时,视频会拉伸高度和宽度,直到它与VideoView指定的高度或宽度之一匹配(即它不会破坏纵横比).奇怪,我知道,但这就是我发现的!
Fee*_*ood 11
要"centerCrop"为VideoView您onMeasure()和layout()方法设置比例类型,可能如下所示:
public class CenterCropVideoView extends VideoView {
private int leftAdjustment;
private int topAdjustment;
...
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
int videoWidth = getMeasuredWidth();
int videoHeight = getMeasuredHeight();
int viewWidth = getDefaultSize(0, widthMeasureSpec);
int viewHeight = getDefaultSize(0, heightMeasureSpec);
leftAdjustment = 0;
topAdjustment = 0;
if (videoWidth == viewWidth) {
int newWidth = (int) ((float) videoWidth / videoHeight * viewHeight);
setMeasuredDimension(newWidth, viewHeight);
leftAdjustment = -(newWidth - viewWidth) / 2;
} else {
int newHeight = (int) ((float) videoHeight / videoWidth * viewWidth);
setMeasuredDimension(viewWidth, newHeight);
topAdjustment = -(newHeight - viewHeight) / 2;
}
}
@Override
public void layout(int l, int t, int r, int b) {
super.layout(l + leftAdjustment, t + topAdjustment, r + leftAdjustment, b + topAdjustment);
}
}
Run Code Online (Sandbox Code Playgroud)
默认情况下,视频视图会自行调整大小以适应视频的编码分辨率.
VideoView(或SurfaceView用于MediaPlayer)将是您在布局中告诉它的大小.在该空间内,视频将在保持纵横比的同时尽可能大地播放.
我可以强制Android将视频渲染为更小或更大的矩形吗?
是的:让你VideoView成为你想要的尺寸,Android会根据尺寸来缩放VideoView.
| 归档时间: |
|
| 查看次数: |
30229 次 |
| 最近记录: |