我目前正在尝试实施一个视频视频,该视频将在特定位置显示视频。我可以毫无问题地显示全屏视频。但是每当我试图在一个帧内显示该视频时(例如一个小矩形),我只能在该视图中显示一部分视频。我无法将视频放入该视图中。
我已经在android中查找了很多关于缩放视频的链接,但我无法找到任何方法来做到这一点。有关该问题的任何帮助都会有所帮助。
我正在使用的是我有2个不同的课程。其中一个是我的视频活动课,另一个是辅助课:
public class VideoViewCustom extends VideoView {
private int mForceHeight = 0;
private int mForceWidth = 0;
public VideoViewCustom(Context context) {
super(context);
}
public VideoViewCustom(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public VideoViewCustom(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public void setDimensions(int w, int h) {
this.mForceHeight = h;
this.mForceWidth = w;
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
setMeasuredDimension(mForceWidth, mForceHeight);
}
}
该课程帮助我正确设置视频视图的尺寸,但是我无法使视频适合该区域。我的意思是我无法缩放视频以适应该区域。我不知道android是否自动缩放到给定的维度但我无法做到。
答案 0 :(得分:2)
愿这对你有帮助......
public void onMeasure(int width, int height)
{
getHolder().setFixedSize(width, height);
forceLayout();
setMeasuredDimension(width, height);
invalidate();
}
...并尝试RelativeLayout
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<VideoView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentLeft="true"/>
</RelativeLayout>
答案 1 :(得分:1)
我认为您必须创建一个ViewGroup,您可以在其中实现onLayout()方法。
您可以在此设置视图的位置,直接调用每个视图的layout()方法。
示例:
ViewGroup vg = new ViewGroup(this) {
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
int x = getMeasuredWidth();
int y = getMeasuredHeight();
for (int i = 0; i < vg.getChildCount(); i++) {
if(vg.getChildAt(i) instanceof TextView){
vg.getChildAt(i).layout(...);//and so on...
}
}
}
};
希望帮助!!