Bonjour à toutes et à tous,
J'ai créé une simple application (allumer la LED pour en faire une lampe d'éclairage) . Elle fonctionne en mode portrait, mais elle plante en mode paysage.
Que faut-il faire pour que cela fonctionne dans les deux modes ?
Voici le source :
et le 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
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 package com.example.Lampe_Flash; import android.app.Activity; import android.content.Context; import android.content.pm.PackageManager; import android.hardware.Camera; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private Button bouton; private TextView info; //variable état du flash et flash private boolean isFlashOn = false; private Camera camera; //on associe nos 2 variables aux id de l'interface graphique private Context context; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bouton = (Button) findViewById(R.id.flash); info = (TextView) findViewById(R.id.barreEtat); //vérifie si le tél possède un flash context = this; PackageManager pm = context.getPackageManager(); if (!pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) { Toast.makeText(getApplicationContext(), "Votre téléphone ne possède pas de flash!", Toast.LENGTH_SHORT).show(); return; } camera = Camera.open(); final android.hardware.Camera.Parameters p = camera.getParameters(); bouton.setOnClickListener(new View.OnClickListener() { //clique sur le bouton public void onClick(View arg0) { if (isFlashOn) { p.setFlashMode(android.hardware.Camera.Parameters.FLASH_MODE_OFF); camera.setParameters(p); isFlashOn = false; //on change la couleur de la zone en gris signifiant que le flash est éteint info.setBackgroundColor(Color.BLUE); info.setText("LED éteinte"); } else { //on change la couleur de la zone en blanc signifiant que le flash est allumé info.setBackgroundColor(Color.WHITE); info.setText("LED allumée"); p.setFlashMode(android.hardware.Camera.Parameters.FLASH_MODE_TORCH); camera.setParameters(p); isFlashOn = true; } } }); } @Override protected void onResume() { super.onResume(); } @Override protected void onDestroy() { super.onDestroy(); } }
Merci de votre aide.
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 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/relativeLayout1" android:background="#000" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:id="@+id/flash" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:background="#000" android:layout_alignParentTop="true" android:layout_above="@+id/barreEtat" /> <EditText android:id="@+id/barreEtat" android:layout_width="fill_parent" android:layout_height="50dp" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:background="@android:color/holo_blue_light" android:text="LED éteinte" android:singleLine="false" android:textAlignment="center" android:textStyle="bold" android:textSize="50sp" android:textIsSelectable="false" android:gravity="center" /> </RelativeLayout>
Pierre
Partager