Bonjour à tous,
Je débute en programmation Android, je fais ça pour le plaisir. J'aimerais comprendre la philosophie de fonctionnement du sample Camera2Basic. Dans la plupart des tutos sur l'API camera2, l'exécution du code se d"roule dans l'activité principale. Or dans ce code, je ne comprends pas comment le programme fait le lien entre les diverses activités.. C'est un mystère pour moi.
Je cherche à implémenter un bouton settings qui pointe vers une autre activité permettant de saisir des valeurs et de les afficher en overlay sur la preview de la camera. Toutes mes tentatives se soldent par un crash. La méthode Intent classique pour ouvrir une autre activité n'a pas l'air de fonctionner.
Si l'une ou l'un d'entre vous pourrait m'expliquer simplement, ce serait vraiment sympa.

Voici le code de l'activité principale. Il n'y a rien dedans, et pourtant ça fonctionne !

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
/*
 * Copyright 2019 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
 
package com.example.android.camera2.basic
 
import android.os.Bundle
import android.view.View
import android.widget.FrameLayout
import android.widget.ImageButton
import androidx.appcompat.app.AppCompatActivity
 
class CameraActivity : AppCompatActivity() {
 
    private lateinit var container: FrameLayout
    private lateinit var settings: ImageButton
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_camera)
        container = findViewById(R.id.fragment_container)
    }
 
    override fun onResume() {
        super.onResume()
        // Before setting full screen flags, we must wait a bit to let UI settle; otherwise, we may
        // be trying to set app to immersive mode before it's ready and the flags do not stick
        container.postDelayed({
            container.systemUiVisibility = FLAGS_FULLSCREEN
        }, IMMERSIVE_FLAG_TIMEOUT)
    }
 
    companion object {
        /** Combination of all flags required to put activity into immersive mode */
        const val FLAGS_FULLSCREEN =
                View.SYSTEM_UI_FLAG_LOW_PROFILE or
                        View.SYSTEM_UI_FLAG_FULLSCREEN or
                        View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
                        View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
 
        /** Milliseconds used for UI animations */
        const val ANIMATION_FAST_MILLIS = 50L
        const val ANIMATION_SLOW_MILLIS = 100L
        private const val IMMERSIVE_FLAG_TIMEOUT = 500L
    }
}


Merci à vous.

Cyb

Sauvez des vies, restez chez vous !