CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: gianfrinico con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: carotix con ben 4 Thanks ricevuti negli ultimi sette giorni
Utente del mese: megthebest con ben 21 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 4 su 4
Discussione:

problema con semplice codice

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Aug 2012
    Località
    Prato
    Messaggi
    10
    Smartphone
    Google Nexus

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    problema con semplice codice

    Ciao a tutti,
    stavo provando a seguire un tutorial per imparare a programmare android, nello specifico stavo provando a fare l'applicazione semplice che accende e spenge il flash, con questo codice
    codice:
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            if(this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)){
                t = new Toast(this);
                t.makeText(this, "FLASH SUPPORTATO", Toast.LENGTH_LONG).show();
            }else{
                t=new Toast(this);
                t.makeText(this, "FLASH NON SUPPORTATO", Toast.LENGTH_LONG).show();
            }
            camera=Camera.open();
            tb=(Button) findViewById(R.id.button);
            tb.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    p=camera.getParameters();
                    if(!FlashOn){
                        p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
                        camera.setParameters(p);
                        FlashOn=true;
    
                    }else{
                        p.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
                        camera.setParameters(p);
                        FlashOn=false;
                    }
                }
            });
    Il problema è che quando la provo sul mio LG Nexus 5 mi appare il toast per il flash supportato ma alla pressione del pulsante non succede niente (il flash non si accende). Avevo letto che era un problema del mio telefono che serve una condizione da aggiungere al codice nel ramo dell'if, questa
    codice:
    try {
    camera.setPreviewDisplay(SurfaceTexture(0));
    } catch (IOException e) {
    e.printStackTrace();
    }
    ma con questa mi da l'errore Method call expected su SurfaceTexture(0).
    Come posso risolvere?

    Grazie mille a tutti

  2.  
  3. #2
    Androidiano


    Registrato dal
    Dec 2011
    Messaggi
    53
    Smartphone
    Galaxy S i9003

    Ringraziamenti
    3
    Ringraziato 3 volte in 3 Posts
    Predefinito

    Stai passando un costruttore, prova con
    codice:
    camera.setPreviewDisplay(new SurfaceTexture(0));
    Ma il metodo setPreviewDisplay non ha come parametro un SurfaceHolder?

  4. #3
    Baby Droid


    Registrato dal
    Aug 2012
    Località
    Prato
    Messaggi
    10
    Smartphone
    Google Nexus

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Quote Originariamente inviato da Giascar Visualizza il messaggio
    Stai passando un costruttore, prova con
    codice:
    camera.setPreviewDisplay(new SurfaceTexture(0));
    Ma il metodo setPreviewDisplay non ha come parametro un SurfaceHolder?
    Il codice lo ho ripreso da qui, dove nei commenti c'è scritto che per alcuni telefoni era da aggiungere il codice che ho postato sopra.
    Guida programmazione Android ? Lezione 7: Torcia | Android Blog Italia

    EDIT:
    Comunque mi da lo stesso errore. Sia passando il new SurfaceTexture(0) dicendomi che devo fare il cast a SurfaceHolder, ma cosi facendo quando eseguo l'applicazione mi va in crash appena clicco sul bottone. Se provo a passare SurfaceHolder, mi dice che devo implementare un metodo Override
    Ultima modifica di Hotachi; 16-03-14 alle 23:38

  5. #4
    Androidiano


    Registrato dal
    Dec 2011
    Messaggi
    53
    Smartphone
    Galaxy S i9003

    Ringraziamenti
    3
    Ringraziato 3 volte in 3 Posts
    Predefinito

    Quote Originariamente inviato da Hotachi Visualizza il messaggio
    EDIT:
    Comunque mi da lo stesso errore. Sia passando il new SurfaceTexture(0) dicendomi che devo fare il cast a SurfaceHolder, ma cosi facendo quando eseguo l'applicazione mi va in crash appena clicco sul bottone. Se provo a passare SurfaceHolder, mi dice che devo implementare un metodo Override
    Prevedibile, stando alla documentazione ufficiale quel metodo accetta solo un SurfaceHolder. Leggendo le risposte al commento che suggeriva questa strada, mi pare che non funzioni nemmeno ad altri.

    Prova così:

    codice:
    try {
        mCamera.setPreviewTexture(new SurfaceTexture(0));
                   } catch (IOException e) {
                      e.printStackTrace();
                 }
    Probabilmente è solo sbagliato il metodo, ha usato Display invece che Texture.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy