Размещение видео внутри VideoView

Итак, я расширил onMeasure 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 с гравитацией VideoView, установленной в центре.

52
задан Josh Kelley 6 January 2011 в 11:02
поделиться