PrésentationFrameLayout 4: 3 aspect
J'ai mis une caméra dans mon application qui prend 4: 3 images rapport, voici mon appareil photo en XML
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imageCapture">
</FrameLayout>
Dans ma classe appareil photo I puis appelez ma surfaceview sur cet objet:
public FrameLayout preview;
//,,,
preview = (FrameLayout) rootView.findViewById(R.id.imageCapture);
//...
myCameraSurfaceView = new Surface(getActivity(), myCamera);
preview.addView(myCameraSurfaceView);
Tout fonctionne très bien, mais!
Le problème
Mon appareil photo prend 4: 3 photos, comme indiqué ci-dessous:
p.setPictureSize(bWidthFourThree, bHeightFourThree);
myCamera.setParameters(param);
Donc, mon image capturée est 4: 3 photo que je veux. MAIS mon aperçu de caméra (l'implémentation de framelayout/surfaceview) enveloppe tout l'écran.
Ce que je voudrais
Maintenant, je sais ce que le problème est, elle enveloppe l'écran parce que la largeur et la hauteur sont des parents de correspondance pour la mise en page du cadre. Ce que je voudrais est:
- Définissez les paramètres de mise en page de cadre selon bWidthFourThree, BHeightFourThree. Cependant, entre les appareils, ces variables peuvent changer en raison du matériel de caméra différent, etc. Je ne peux donc pas coder en dur la largeur et la hauteur. Aussi mon SurfaceView pour la caméra est une classe interne à la classe de la caméra, donc je ne sais pas comment je peux obtenir les caméras variables de résolution avant de créer le framelayout
toute aide est appréciée, le cas échéant des informations supplémentaires sont nécessaires S'il vous plaît laissez-moi savoir et Ill mettre à jour ce poste
Vous n'avez pas besoin d'avoir le FrameLayout dans votre fichier XML, vous pouvez en créer un nouveau et définir vos paramètres de mise en page (via FrameLayout.LayoutParams), vous pouvez donc seulement après avoir les dimensions de la caméra. Après cela, vous pouvez ajouter le FrameLayout à une autre vue (LinearLayout, c'est-à-dire). – FabioR
Pourriez-vous me donner un exemple s'il vous plaît, je comprends ce que vous voulez dire pas comment le mettre en œuvre – PepsiVsCoke
Je l'afficherai comme une réponse – FabioR