IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Avancer une activité aux dépens d'une autre


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2014
    Messages : 21
    Par défaut Avancer une activité aux dépens d'une autre
    Bonjour,

    Dans une application, j'ai besoin de faire avancer une activité bien précise aux dépens d'une autre.

    Voilà mon code :

    Main.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical"
      android:layout_width="match_parent"
      android:layout_height="match_parent">
     
      <FrameLayout
        android:id="@+id/cameraPreview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
      />
     
      <TextView
        android:id="@+id/scanText"
        android:text="Scanning..."
        android:layout_height="wrap_content" 
        android:layout_width="match_parent">
      </TextView>
      <Button
        android:id="@+id/ScanButton"
        android:text="Scan"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
      />
    </LinearLayout>
    AndroidManifest.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="net.sourceforge.zbar.android.CameraTest"
          android:versionCode="1"
          android:versionName="1.0">
        <uses-sdk android:minSdkVersion="8" />
        <uses-permission android:name="android.permission.CAMERA" />
        <uses-feature android:name="android.hardware.camera" />
        <uses-feature android:name="android.hardware.camera.autofocus" />
        <application android:label="@string/app_name" >
            <activity android:name="CameraTestActivity"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    </manifest>
    CamerTestActivity.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    /*
     * Basic no frills app which integrates the ZBar barcode scanner with
     * the camera.
     * 
     * Created by lisah0 on 2012-02-24
     */
    package net.sourceforge.zbar.android.CameraTest;
     
    import net.sourceforge.zbar.android.CameraTest.CameraPreview;
     
    import android.app.Activity;
    import android.content.pm.ActivityInfo;
    import android.os.Bundle;
    import android.os.Handler;
    import android.util.Log;
     
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.Window;
    import android.widget.FrameLayout;
    import android.widget.Button;
     
    import android.hardware.Camera;
    import android.hardware.Camera.PreviewCallback;
    import android.hardware.Camera.AutoFocusCallback;
    import android.hardware.Camera.Parameters;
    import android.hardware.Camera.Size;
     
    import android.widget.TextView;
    import android.graphics.ImageFormat;
     
    /* Import ZBar Class files */
    import net.sourceforge.zbar.ImageScanner;
    import net.sourceforge.zbar.Image;
    import net.sourceforge.zbar.Symbol;
    import net.sourceforge.zbar.SymbolSet;
    import net.sourceforge.zbar.Config;
     
    public class CameraTestActivity extends Activity
    {
        private Camera mCamera;
        private CameraPreview mPreview;
        private Handler autoFocusHandler;
     
        TextView scanText;
        Button scanButton;
     
        ImageScanner scanner;
     
        private boolean barcodeScanned = false;
        private boolean previewing = true;
     
        static {
            System.loadLibrary("iconv");
        } 
     
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
     
            setContentView(R.layout.main);
     
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
     
            autoFocusHandler = new Handler();
            mCamera = getCameraInstance();
     
            /* Instance barcode scanner */
            scanner = new ImageScanner();
            scanner.setConfig(0, Config.X_DENSITY, 3);
            scanner.setConfig(0, Config.Y_DENSITY, 3);
     
            mPreview = new CameraPreview(this, mCamera, previewCb, autoFocusCB);
            FrameLayout preview = (FrameLayout)findViewById(R.id.cameraPreview);
            preview.addView(mPreview);
     
            scanText = (TextView)findViewById(R.id.scanText);
     
            scanButton = (Button)findViewById(R.id.ScanButton);
     
            scanButton.setOnClickListener(new OnClickListener() {
                    public void onClick(View v) {
                        if (barcodeScanned) {
                            barcodeScanned = false;
                            scanText.setText("Scanning...");
                            mCamera.setPreviewCallback(previewCb);
                            mCamera.startPreview();
                            previewing = true;
                            mCamera.autoFocus(autoFocusCB);
                        }
                    }
                });
        }
     
        public void onPause() {
            super.onPause();
            releaseCamera();
        }
     
        /** A safe way to get an instance of the Camera object. */
        public static Camera getCameraInstance(){
            Camera c = null;
            try {
                c = Camera.open();
            } catch (Exception e){
            }
            return c;
        }
     
        private void releaseCamera() {
            if (mCamera != null) {
                previewing = false;
                mCamera.setPreviewCallback(null);
                mCamera.release();
                mCamera = null;
            }
        }
     
        private Runnable doAutoFocus = new Runnable() {
                public void run() {
                    if (previewing)
                        mCamera.autoFocus(autoFocusCB);
                }
            };
     
        PreviewCallback previewCb = new PreviewCallback() {
                public void onPreviewFrame(byte[] data, Camera camera) {
                    Camera.Parameters parameters = camera.getParameters();
                    Size size = parameters.getPreviewSize();
     
                    Image barcode = new Image(size.width, size.height, "Y800");
                    barcode.setData(data);
     
                    int result = scanner.scanImage(barcode);
     
                    if (result != 0) {
                        previewing = false;
                        mCamera.setPreviewCallback(null);
                        mCamera.stopPreview();
     
                        SymbolSet syms = scanner.getResults();
                        for (Symbol sym : syms) {
                            scanText.setText("barcode result " + sym.getData());
                            barcodeScanned = true;
                        }
                    }
                }
            };
     
        // Mimic continuous auto-focusing
        AutoFocusCallback autoFocusCB = new AutoFocusCallback() {
                public void onAutoFocus(boolean success, Camera camera) {
                    autoFocusHandler.postDelayed(doAutoFocus, 1000);
                }
            };
    }
    CameraPreview.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    /*
     * Barebones implementation of displaying camera preview.
     * 
     * Created by lisah0 on 2012-02-24
     */
    package net.sourceforge.zbar.android.CameraTest;
     
    import java.io.IOException;
     
    import android.app.Activity;
    import android.os.Bundle;
     
    import android.util.Log;
     
    import android.view.View;
    import android.view.Surface;
    import android.view.SurfaceView;
    import android.view.SurfaceHolder;
     
    import android.content.Context;
     
    import android.hardware.Camera;
    import android.hardware.Camera.PreviewCallback;
    import android.hardware.Camera.AutoFocusCallback;
    import android.hardware.Camera.Parameters;
     
    /** A basic Camera preview class */
    public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback {
        private SurfaceHolder mHolder;
        private Camera mCamera;
        private PreviewCallback previewCallback;
        private AutoFocusCallback autoFocusCallback;
     
        public CameraPreview(Context context, Camera camera,
                             PreviewCallback previewCb,
                             AutoFocusCallback autoFocusCb) {
            super(context);
            mCamera = camera;
            previewCallback = previewCb;
            autoFocusCallback = autoFocusCb;
     
            /* 
             * Set camera to continuous focus if supported, otherwise use
             * software auto-focus. Only works for API level >=9.
             */
            /*
            Camera.Parameters parameters = camera.getParameters();
            for (String f : parameters.getSupportedFocusModes()) {
                if (f == Parameters.FOCUS_MODE_CONTINUOUS_PICTURE) {
                    mCamera.setFocusMode(Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
                    autoFocusCallback = null;
                    break;
                }
            }
            */
     
            // Install a SurfaceHolder.Callback so we get notified when the
            // underlying surface is created and destroyed.
            mHolder = getHolder();
            mHolder.addCallback(this);
     
            // deprecated setting, but required on Android versions prior to 3.0
            mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
        }
     
        public void surfaceCreated(SurfaceHolder holder) {
            // The Surface has been created, now tell the camera where to draw the preview.
            try {
                mCamera.setPreviewDisplay(holder);
            } catch (IOException e) {
                Log.d("DBG", "Error setting camera preview: " + e.getMessage());
            }
        }
     
        public void surfaceDestroyed(SurfaceHolder holder) {
            // Camera preview released in activity
        }
     
        public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
            /*
             * If your preview can change or rotate, take care of those events here.
             * Make sure to stop the preview before resizing or reformatting it.
             */
            if (mHolder.getSurface() == null){
              // preview surface does not exist
              return;
            }
     
            // stop preview before making changes
            try {
                mCamera.stopPreview();
            } catch (Exception e){
              // ignore: tried to stop a non-existent preview
            }
     
            try {
                // Hard code camera surface rotation 90 degs to match Activity view in portrait
                mCamera.setDisplayOrientation(90);
     
                mCamera.setPreviewDisplay(mHolder);
                mCamera.setPreviewCallback(previewCallback);
                mCamera.startPreview();
                mCamera.autoFocus(autoFocusCallback);
            } catch (Exception e){
                Log.d("DBG", "Error starting camera preview: " + e.getMessage());
            }
        }
    }
    Ce code est celui du Zbar scanner.

    Mon but est de créer une page main2.xml avant celle du main.xml qui contient un bouton scan et en cliquant sur ce bouton, elle nous renvoie directement dans l'activité principale qui est le scan.

    Quelqu'un saurait-il m'indiquer comment faire ?

    Merci d'avance pour votre aide.

  2. #2
    Membre éclairé Avatar de Neolex
    Homme Profil pro
    Recherche emploi Securité informatique
    Inscrit en
    Avril 2011
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Recherche emploi Securité informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 243
    Par défaut
    Si j'ai bien compris ta question , tu dois utiliser un intent voici le code à mettre dans l'activité avec seulement un bouton :
    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    @Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main2);
     
    		mBouton = (Button)findViewById(R.id.bouton);
     
    	    mBouton.setOnClickListener(new View.OnClickListener() {
    	        @Override
    	        public void onClick(View v) {
    	          // Le premier paramètre est le nom de l'activité actuelle
    	          // Le second est le nom de l'activité de destination
    	          Intent intentScan = new Intent(MainActivity.this, CameraTestActivity.class);
     
    	          // Puis on lance l'intent !
    	          startActivity(intentScan);
    	        }
    	      });
    	 }

Discussions similaires

  1. [VB.NET] Associer une clé aux éléments d'une combo
    Par Cereal123 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 30/03/2009, 14h52
  2. Réponses: 1
    Dernier message: 11/02/2009, 06h33
  3. Réponses: 2
    Dernier message: 12/06/2008, 16h08
  4. Réponses: 1
    Dernier message: 18/03/2008, 15h29
  5. [VB.net] Acces aux controles d'une form a partir d'une autre
    Par Fab62_ dans le forum Windows Forms
    Réponses: 3
    Dernier message: 25/01/2006, 12h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo