J'ai donc étendu VideoView de onMeasure à l'échelle de la vidéo pour s'adapter à l'intérieur d'une vue plein écran.
voici comment:
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);
}
J'appelle setVideoAspect() avec l'affichage d'indicateurs (largeur, hauteur) de l'écran. Le problème est que cette méthode s'étend sur la vidéo pour s'adapter à l'intérieur de l'écran. Je veux être en mesure de garder le ratio d'aspect. (J'ai une vidéo 4:3 et 3:2 taille de l'écran.) J'ai utilisé le code suivant pour donner à la conservées des mesures de taux de la vue:
int height = (int) (metrics.widthPixels*3/(float)4);
int width= metrics.widthPixels;
mVideoView.setVideoAspect(width,height);
Donc, de ce fait le travail, mais il y a un problème: il me donne une vidéo 4:3 avec la largeur de l'écran et des échelles de la hauteur correctement, mais il n'est pas le centre de la vidéo. (Il vient de cultures de la partie inférieure de la vidéo au lieu de le haut et le bas aussi.) J'ai une relative mise en page contenant le VideoView avec la gravité de la VideoView centre.