ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [안드로이드 스튜디오] 고급 위젯과 이벤트 처리
    프로그래밍/XML | JAVA 2024. 3. 26. 09:32

    버튼을 누를때마다 배경 색상 변경

    XML

    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.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=".MainActivity">
    
        <ImageView
            android:id="@+id/clothingImageView"
            android:layout_width="match_parent"
            android:layout_height="252dp"
            android:layout_marginTop="4dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:srcCompat="@drawable/boy_img" />
    
        <Button
            android:id="@+id/colorButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="4dp"
            android:layout_marginTop="79dp"
            android:text="Color 1"
            app:layout_constraintEnd_toStartOf="@+id/colorButton2"
            app:layout_constraintHorizontal_chainStyle="spread_inside"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/clothingImageView" />
    
        <Button
            android:id="@+id/colorButton2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="5dp"
            android:text="Color 2"
            app:layout_constraintBaseline_toBaselineOf="@+id/colorButton1"
            app:layout_constraintEnd_toStartOf="@+id/colorButton3"
            app:layout_constraintStart_toEndOf="@+id/colorButton1" />
    
        <Button
            android:id="@+id/colorButton3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="5dp"
            android:text="Color 3"
            app:layout_constraintEnd_toStartOf="@+id/colorButton4"
            app:layout_constraintStart_toEndOf="@+id/colorButton2"
            app:layout_constraintTop_toTopOf="@+id/colorButton2" />
    
        <Button
            android:id="@+id/colorButton4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Color 4"
            app:layout_constraintBaseline_toBaselineOf="@+id/colorButton3"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@+id/colorButton3" />
    </androidx.constraintlayout.widget.ConstraintLayout>

    JAVA

    package com.example.a05_14;
    
    import android.graphics.Color;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ImageView;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    public class MainActivity extends AppCompatActivity {
        private ImageView clothingImageView;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            clothingImageView = findViewById(R.id.clothingImageView);
    
            Button colorButton1 = findViewById(R.id.colorButton1);
            Button colorButton2 = findViewById(R.id.colorButton2);
            Button colorButton3 = findViewById(R.id.colorButton3);
            Button colorButton4 = findViewById(R.id.colorButton4);
    
            colorButton1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    changeClothingColor(Color.RED);
                }
            });
    
            colorButton2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    changeClothingColor(Color.BLUE);
                }
            });
    
            colorButton3.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    changeClothingColor(Color.GREEN);
                }
            });
    
            colorButton4.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    changeClothingColor(Color.YELLOW);
                }
            });
        }
    
        private void changeClothingColor(int color) {
            clothingImageView.setBackgroundColor(color);
        }
    
    }


    람다식 사용

    JAVA

    package com.example.a05_14;
    
    import android.graphics.Color;
    import android.os.Bundle;
    import android.widget.Button;
    import android.widget.ImageView;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    public class MainActivity extends AppCompatActivity {
        private ImageView clothingImageView;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            clothingImageView = findViewById(R.id.clothingImageView);
    
            Button colorButton1 = findViewById(R.id.colorButton1);
            Button colorButton2 = findViewById(R.id.colorButton2);
            Button colorButton3 = findViewById(R.id.colorButton3);
            Button colorButton4 = findViewById(R.id.colorButton4);
    
            colorButton1.setOnClickListener(view -> changeClothingColor(Color.RED));
            colorButton2.setOnClickListener(view -> changeClothingColor(Color.BLUE));
            colorButton3.setOnClickListener(view -> changeClothingColor(Color.GREEN));
            colorButton4.setOnClickListener(view -> changeClothingColor(Color.YELLOW));
        }
    
        private void changeClothingColor(int color) {
            clothingImageView.setBackgroundColor(color);
        }
    
    }

     


    샌드위치 토핑 선택

    XML

    <?xml version="1.0" encoding="utf-8"?>
    <androidx.appcompat.widget.LinearLayoutCompat
        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"
        android:orientation="vertical"
        tools:context=".MainActivity">
    
    
        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="샌드위치 선택" />
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="35dp"
            android:orientation="horizontal">
            <CheckBox
                android:id="@+id/checkBox"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:onClick="onCheckboxClicked"
                android:text="MEAT" />
            <CheckBox
                android:id="@+id/checkBox2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:onClick="onCheckboxClicked"
                android:text="CHEESE" />
        </LinearLayout>
    
        <ImageView
            android:id="@+id/ImageViewSand1"
            android:layout_marginTop="20dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:srcCompat="@drawable/sand1" />
    
        <ImageView
            android:id="@+id/ImageViewSand2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:srcCompat="@drawable/sand2" />
    
    </androidx.appcompat.widget.LinearLayoutCompat>

    JAVA

    package com.example.a05_28;
    
    import android.os.Bundle;
    import android.view.View;
    import android.widget.CheckBox;
    import android.widget.ImageView;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    public class MainActivity extends AppCompatActivity {
        ImageView sand1, sand2;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            sand1 = (ImageView) findViewById(R.id.ImageViewSand1);
            sand2 = (ImageView) findViewById(R.id.ImageViewSand2);
        }
    
        public void onCheckboxClicked(View v) {
            boolean checked = ((CheckBox) v).isChecked();
    
            switch(v.getId()) {
                case R.id.checkBox:
                    if(checked) sand1.setImageResource(R.drawable.sand1);
                    else sand1.setImageResource(0);
                    break;
                case R.id.checkBox2:
                    if(checked) sand2.setImageResource(R.drawable.sand2);
                    else sand2.setImageResource(0);
                    break;
            }
        }
    }

     

Designed by Tistory.