Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ajouter une image dans LinearLayout avec Button

Sujet résolu
    16 mars 2018 à 9:29:50

    Bonjour.

    Je souhaite changer le "fond d'écran" d'un LinearLayout à l'aide d'un Button.

    Cela fonctionne avec les couleurs mais pas avec les images situer dans ma ressource Drawable.

    Pouriez-vous m'aider s'il vous plaît ? 

    Je vous laisse mon Code :

    Dans XML :

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="premierprojet.android.exerciceopenclasseroom.MainActivity">
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical"
            android:id="@+id/linearLayout">
            <Button
                android:id="@+id/rouge"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Rouge"
                android:textColor="#FF0000"/>
            <Button
                android:id="@+id/jaune"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Jaune"
                android:textColor="#FFFF00"/>
            <Button
                android:id="@+id/vert"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Vert"
                android:textColor="#008000"/>
            <Button
                android:id="@+id/milimétré"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Milimétré"/>
        </LinearLayout>
    
    </android.support.constraint.ConstraintLayout>
    

    Dans Main Java :

    package premierprojet.android.exerciceopenclasseroom;
    
            import android.app.Dialog;
            import android.graphics.Color;
            import android.graphics.drawable.Drawable;
            import android.graphics.drawable.DrawableWrapper;
            import android.support.annotation.DrawableRes;
            import android.support.v7.app.AppCompatActivity;
            import android.os.Bundle;
            import android.view.View;
            import android.widget.Button;
            import android.widget.LinearLayout;
    
    
    
    public class MainActivity extends AppCompatActivity {
        Button rouge, jaune, vert, milimétré;
        LinearLayout linearLayout;
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            rouge = (Button) findViewById(R.id.rouge);
            jaune = (Button) findViewById(R.id.jaune);
            vert = (Button) findViewById(R.id.vert);
            linearLayout = (LinearLayout) findViewById(R.id.linearLayout);
    
            rouge.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    linearLayout.setBackgroundColor(Color.RED);
                }
            });
            vert.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    linearLayout.setBackgroundColor(Color.GREEN);
                }
            });
            jaune.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    linearLayout.setBackgroundColor(Color.YELLOW);
                }
            });
            milimétré.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    linearLayout.setBackgroundResource(R.drawable.papier);
                }
            });
        }
    }
    

    J'essaie de récupérer une image nommé "papier" dans Drawable avec l'instruction : linearLayout.setBackgroundResource(R.drawable.papier); et c'est ici précisément que ça ne fonctionne pas.

    • Partager sur Facebook
    • Partager sur Twitter
      22 mars 2018 à 9:57:50

      Salut,

      Quand tu dis que ça ne marche pas, à la vue du code, j'en conclue que ton application crash ? Ton bouton `milimétré` n'est jamais initialisé contrairement aux autres boutons.

      D'ailleurs, mettre des accents dans le nom des variables n'est pas une pratique très courante :)

      • Partager sur Facebook
      • Partager sur Twitter
        13 avril 2018 à 10:30:26

        Bonjour, 

        Il fallait effectivement initialisé le bouton "millimétré", j'ai complètement oublié de le faire, sa fonctionne, merci ! :)

        • Partager sur Facebook
        • Partager sur Twitter

        Ajouter une image dans LinearLayout avec Button

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown