Autore Topic: Ridimensionamento SurfaceView  (Letto 265 volte)

Offline gabric

  • Utente senior
  • ****
  • Post: 615
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Ridimensionamento SurfaceView
« il: 01 Agosto 2013, 16:19:12 CEST »
0
Salve!
Nella mia app registro a schermo, e mostro l'anteprima in una surfaceview.
Questa è è mostrata con le proporzioni del video (prendendole dal parametro della fotocamera)
Fino ad android 4.1 nessun problema. In android 4.2 al play funziona tutto benissimo, ma alla pressione del tasto stop, l'app va in freeze.
se non ridimensiono la surface view non succede.
idea del perchè?

Codice (Java): [Seleziona]
 public void surfaceCreated(SurfaceHolder holder) {
                               
                       
                                try{
                                mCamera= Camera.open(1);
                                setCameraDisplayOrientation( this, 1, mCamera);
                                }catch(RuntimeException e){
                                        e.printStackTrace();
                                        appendLog("Rigo 976, errore nell'apertura della camera" +e);
                                        Toast.makeText(getApplicationContext(), "Impossibile iniziare la registrazione. errore nell'apertura della camera", Toast.LENGTH_LONG).show();
                                return;
                                }
                 
                                ViewGroup.LayoutParams params = mSurfaceView.getLayoutParams();
                               
                                Parameters parameters = mCamera.getParameters();
                                List<Size> sizes = parameters.getSupportedPreviewSizes();
                           
                              params.width = (sizes.get(0).width / 4);
                                params.height = (sizes.get(0).height / 4);
                                                       
                        }


Stesso risultato anceh buttando la surface dentro un linearlayout e cambiando le dim del layout
anche chiamando
mSurfaceView.getHolder().setFixedSize((sizes.get(0).width / 4), (sizes.get(0).height / 4))    ;
anche passando un params direttamente al mSurfaceView()
Non so più che fare