Also habe ich VideoView onMeasure erweitert, um das Video so zu skalieren, dass es in eine Vollbildansicht passt.Video in einem VideoView positionieren
hier, wie:
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);
}
Ich nenne setVideoAspect() mit den Display-Metriken (Breite, Höhe) des Bildschirms. Das Problem ist, dass diese Methode das Video so streckt, dass es in den Bildschirm passt. Ich möchte das Seitenverhältnis beibehalten können. (Ich habe 4: 3-Video und 3: 2 Bildschirmgröße.) Ich habe den Folowing Code verwenden die zurückgehaltenen Verhältnis Messungen zu der Ansicht zu geben:
int height = (int) (metrics.widthPixels*3/(float)4);
int width= metrics.widthPixels;
mVideoView.setVideoAspect(width,height);
So tut dies dem Job, aber es gibt ein Problem: es gibt mir ein 4: 3 Video mit der Breite des Bildschirms und skaliert die Höhe richtig, aber es zentriert das Video nicht. (Es schneidet nur den unteren Teil des Videos ab, nicht gleich oben und unten.) Ich habe ein relatives Layout, das den VideoView enthält, wobei die Schwerkraft des VideoView-Sets zentriert ist.
können Sie stellen den kompletten Code dafür zur Verfügung ... Ich bin schlecht stecken geblieben –