Итак, я расширил видеоизображение VideoView, чтобы увеличить видео, чтобы оно соответствовало полноэкранному просмотру.Позиция видео внутри видеообзора
вот как:
public void setVideoAspect(int w,int h){
wVideo=w;
hVideo=h;
onMeasure(w, h);
}
@Override
protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec)
{
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
if(wVideo!=0 && hVideo!=0)
setMeasuredDimension(wVideo,hVideo);
}
Я называю setVideoAspect() с метриками отображения (ширина, высота) экрана. Проблема заключается в том, что этот метод растягивает видео, чтобы он находился внутри экрана. Я хочу удержать соотношение сторон. (У меня есть 4: 3 видео и 3: 2 размера экрана.) Я использовал ниже код, чтобы дать нераспределенное измерение соотношения с точкой зрения:
int height = (int) (metrics.widthPixels*3/(float)4);
int width= metrics.widthPixels;
mVideoView.setVideoAspect(width,height);
Так что это делает работу, но есть проблема: он дает мне 4: 3 видео с шириной экрана и правильно масштабирует высоту, но оно не центрирует видео. (Он просто обрезает нижнюю часть видео, а не сверху и снизу). У меня есть относительный макет, содержащий VideoView, с гравитацией видеообзора, установленным в центр.
может вы предоставляете полный код для этого ... Я застрял плохо –