본문 바로가기
DEVELOPMENT

[Android Studio] 안드로이드 사진 보기 어플

by 200% 2021. 5. 7.

[직접 풀어보기 4-4]

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:padding="10dp"
    android:orientation="vertical"
    tools:context=".MainActivity">

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

    <Switch
        android:id="@+id/ChkAgree"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="false" />

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

    <RadioGroup
        android:id="@+id/Rgroup1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="invisible">

        <RadioButton
            android:id="@+id/RdoO"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="오레오(8.0)" />

        <RadioButton
            android:id="@+id/RdoP"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="파이(9.0)" />

        <RadioButton
            android:id="@+id/RdoQ"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Q(10.0)" />

        <RadioButton
            android:id="@+id/RdoR"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="R(11.0)" />
    </RadioGroup>

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

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

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

</LinearLayout>

 

MainActivity.java

더보기
public class MainActivity extends AppCompatActivity {
    TextView text1, text2;
    Switch chkAgree;
    RadioGroup rGroup1;
    RadioButton rdoO, rdoP, rdoQ, rdoR;
    ImageView imgShow;
    Button btnQuit, btnRe;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setTitle("안드로이드 사진 보기");

        text1 = (TextView) findViewById(R.id.Text1);
        chkAgree = (Switch) findViewById(R.id.ChkAgree);

        text2 = (TextView) findViewById(R.id.Text2);
        rGroup1 = (RadioGroup) findViewById(R.id.Rgroup1);
        rdoO = (RadioButton) findViewById(R.id.RdoO);
        rdoP = (RadioButton) findViewById(R.id.RdoP);
        rdoQ = (RadioButton) findViewById(R.id.RdoQ);
        rdoR = (RadioButton) findViewById(R.id.RdoR);

        imgShow = (ImageView) findViewById(R.id.ImgShow);
        btnQuit = (Button) findViewById(R.id.BtnQuit);
        btnRe = (Button) findViewById(R.id.BtnRe);

        chkAgree.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (chkAgree.isChecked()){
                    text2.setVisibility(View.VISIBLE);
                    rGroup1.setVisibility(View.VISIBLE);
                    imgShow.setVisibility(View.VISIBLE);
                }else{
                    text2.setVisibility(View.INVISIBLE);
                    rGroup1.setVisibility(View.INVISIBLE);
                    imgShow.setVisibility(View.INVISIBLE);
                    btnQuit.setVisibility(View.INVISIBLE);
                    btnRe.setVisibility(View.INVISIBLE);
                }
            }
        });

        rGroup1.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch(rGroup1.getCheckedRadioButtonId()){
                    case R.id.RdoO:
                        imgShow.setImageResource(R.drawable.o);
                        btnQuit.setVisibility(View.VISIBLE);
                        btnRe.setVisibility(View.VISIBLE);
                        break;
                    case R.id.RdoP:
                        imgShow.setImageResource(R.drawable.p);
                        btnQuit.setVisibility(View.VISIBLE);
                        btnRe.setVisibility(View.VISIBLE);
                        break;
                    case R.id.RdoQ:
                        imgShow.setImageResource(R.drawable.q);
                        btnQuit.setVisibility(View.VISIBLE);
                        btnRe.setVisibility(View.VISIBLE);
                        break;
                    case R.id.RdoR:
                        imgShow.setImageResource(R.drawable.r);
                        btnQuit.setVisibility(View.VISIBLE);
                        btnRe.setVisibility(View.VISIBLE);
                        break;
                    default:
                        Toast.makeText(getApplicationContext(), "그림을 선택하세요", Toast.LENGTH_SHORT).show();
                        btnQuit.setVisibility(View.INVISIBLE);
                        btnRe.setVisibility(View.INVISIBLE);
                }
            }
        });

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

        btnRe.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
                startActivity(new Intent(MainActivity.this, MainActivity.class));
            }
        });
    }
}

 

- 초기화:

finish(); //이거 없으면 같은 앱이 중복으로 열리게 됨... 지워주고 열어야해서 finish(); 필수

startActivity(new Intent(MainActivity.this, MainActivity.class));