프로그래밍

[안드로이드 자바] 라디오버튼으로 이미지 선택 출력(visible, invisible) 본문

안드로이드/안드로이드 스튜디오

[안드로이드 자바] 라디오버튼으로 이미지 선택 출력(visible, invisible)

시케 2021. 12. 9. 11:47
728x90
반응형

 

 

디자인

 

 

프로젝트 설명

토글버튼으로 시작, 라디오버튼으로 해당되는 이미지 출력

 

 

xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:padding="20dp"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/Text1"
        android:text="선택을 시작하시겠습니까?"
        android:textSize="20dp">
    </TextView>

    <Switch
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/SwtAgree"
        android:text="시작함">
    </Switch>


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/Text2"
        android:text="좋아하는 안드로이드 버전은?"
        android:textSize="20dp"
        android:visibility="invisible"
        ></TextView>

    <RadioGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/RGroup"
        android:visibility="invisible">
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="오레오(8.0)"
            android:id="@+id/RdoOreo"></RadioButton>
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="파이(9.0)"
            android:id="@+id/RdoPie"></RadioButton>
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Q(10.0)"
            android:id="@+id/RdoQ"></RadioButton>
    </RadioGroup>

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/ImgAnd"
        android:visibility="invisible">
    </ImageView>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="종료"
        android:id="@+id/BtnEnd"
        android:visibility="invisible">
    </Button>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="처음으로"
        android:id="@+id/BtnStr"
        android:visibility="invisible">
    </Button>


</LinearLayout>

 

 

 

MainActivity.java

package com.example.androidimage;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Switch;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    TextView text1, text2;
    Switch swtAgree;
    RadioGroup rGroup;
    RadioButton rdoOreo, rdoPie, rdoQ;
    Button btnEnd,btnStr;
    ImageView imgAnd;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setTitle("안드로이드 사진 보기");

        text1 = (TextView) findViewById(R.id.Text1);
        text2 = (TextView) findViewById(R.id.Text2);
        swtAgree = (Switch) findViewById(R.id.SwtAgree);
        rGroup = (RadioGroup) findViewById(R.id.RGroup);
        rdoOreo = (RadioButton) findViewById(R.id.RdoOreo);
        rdoPie = (RadioButton) findViewById(R.id.RdoPie);
        rdoQ = (RadioButton) findViewById(R.id.RdoQ);
        imgAnd = (ImageView) findViewById(R.id.ImgAnd);
        btnEnd = (Button) findViewById(R.id.BtnEnd);
        btnStr = (Button) findViewById(R.id.BtnStr);

        swtAgree.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (swtAgree.isChecked()==true) {
                    text2.setVisibility(View.VISIBLE);
                    rGroup.setVisibility(View.VISIBLE);
                    imgAnd.setVisibility(View.VISIBLE);
                    btnEnd.setVisibility(View.VISIBLE);
                    btnStr.setVisibility(View.VISIBLE);
                } else {
                    text2.setVisibility(View.INVISIBLE);
                    rGroup.setVisibility(View.INVISIBLE);
                    imgAnd.setVisibility(View.INVISIBLE);
                    btnEnd.setVisibility(View.INVISIBLE);
                    btnStr.setVisibility(View.INVISIBLE);
                }

            }
        });

        RadioButton radioArray[] = new RadioButton[3];

        radioArray[0] = (RadioButton) findViewById(R.id.RdoOreo);
        radioArray[1] = (RadioButton) findViewById(R.id.RdoPie);
        radioArray[2] = (RadioButton) findViewById(R.id.RdoQ);

        final int draw[] = {R.drawable.oreo, R.drawable.pie,R.drawable.q};

        for (int i = 0; i<radioArray.length; i++){
            final int index;
            index = i;
            radioArray[index].setOnClickListener(new View.OnClickListener() {
                @Override
                    public void onClick(View v) {
                        imgAnd.setImageResource(draw[index]);
                }
            });
        }


        btnStr.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                    text2.setVisibility(View.INVISIBLE);
                    rGroup.setVisibility(View.INVISIBLE);
                    imgAnd.setVisibility(View.INVISIBLE);
                    btnEnd.setVisibility(View.INVISIBLE);
                    btnStr.setVisibility(View.INVISIBLE);

                    rGroup.clearCheck();
                    swtAgree.setChecked(false);
            }
        });

        btnEnd.setOnClickListener((new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                finish();
            }
        }));

    }
}

 

728x90
반응형
Comments