Android 계산기앱 1

JAVA / 기초

Posted by ETHAN KIM on April 11, 2022 · 6 mins read
Android

주요 개념

  • Activity / resource view 구조 및 역할 파악
  • xml resource 파일 먼저 구현
  • relative / linear 레이아웃 혼합 사용


실습 환경

  • Winodws / Android Studio / JDK


구현 결과


./res/layout/activity_main.xml

  • nubmer 및 logic 버튼 개별 View 생성
  • 0 ~ 9 / ‘.’ 버튼에 onclick 정의
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:background="#FAFAFA"
    android:orientation="vertical">
    <EditText
        android:id="@+id/formula"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_alignParentTop="true"
        android:hint="formula" />

    <EditText
        android:id="@+id/answer"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_below="@+id/formula"
        android:hint="Answer" />

    <ImageView
        android:id="@+id/banana1"
        android:layout_width="wrap_content"
        android:layout_height="80dp" />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="80dp"
        android:weightSum="4">
        <Button
            android:onClick="onClick"
            android:id="@+id/btn1"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:backgroundTint="#FFD700"
            android:textColor="#1478CD"
            android:layout_margin="2dp"
            android:text="1"/>
        <Button
            android:onClick="onClick"
            android:id="@+id/btn2"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:layout_margin="2dp"
            android:backgroundTint="#FFD700"
            android:textColor="#1478CD"
            android:text="2"/>
        <Button
            android:onClick="onClick"
            android:id="@+id/btn3"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:layout_margin="2dp"
            android:backgroundTint="#FFD700"
            android:textColor="#1478CD"
            android:text="3"/>
        <Button
            android:id="@+id/btn_pl"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:layout_margin="2dp"
            android:text="+"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="140dp"
        android:weightSum="4">
        <Button
            android:onClick="onClick"
            android:id="@+id/btn4"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:layout_margin="2dp"
            android:backgroundTint="#FFD700"
            android:textColor="#1478CD"
            android:text="4"/>
        <Button
            android:onClick="onClick"
            android:id="@+id/btn5"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:layout_margin="2dp"
            android:backgroundTint="#FFD700"
            android:textColor="#1478CD"
            android:text="5"/>
        <Button
            android:onClick="onClick"
            android:id="@+id/btn6"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:layout_margin="2dp"
            android:backgroundTint="#FFD700"
            android:textColor="#1478CD"
            android:text="6"/>
        <Button
            android:id="@+id/btn_min"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:layout_margin="2dp"
            android:text="-"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="200dp"
        android:weightSum="4">
        <Button
            android:onClick="onClick"
            android:id="@+id/btn7"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:layout_margin="2dp"
            android:backgroundTint="#FFD700"
            android:textColor="#1478CD"
            android:text="7"/>
        <Button
            android:onClick="onClick"
            android:id="@+id/btn8"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:layout_margin="2dp"
            android:backgroundTint="#FFD700"
            android:textColor="#1478CD"
            android:text="8"/>
        <Button
            android:onClick="onClick"
            android:id="@+id/btn9"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:layout_margin="2dp"
            android:backgroundTint="#FFD700"
            android:textColor="#1478CD"
            android:text="9"/>
        <Button
            android:id="@+id/btn_mul"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:layout_margin="2dp"
            android:text="*"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="20dp"
        android:weightSum="4">
        <Button
            android:id="@+id/btn_plmi"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_margin="2dp"
            android:layout_weight="1"
            android:text="±"/>
        <Button
            android:onClick="onClick"
            android:id="@+id/btn0"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_margin="2dp"
            android:layout_weight="1"
            android:text="0"/>
        <Button
            android:onClick="onClick"
            android:id="@+id/btn_dot"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_margin="2dp"
            android:layout_weight="1"
            android:text="."/>
        <Button
            android:id="@+id/btn_eq"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_margin="2dp"
            android:layout_weight="1"
            android:text="="/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="260dp"
        android:weightSum="4">
        <Button
            android:id="@+id/btn_clear"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_margin="2dp"
            android:layout_weight="1"
            android:text="C"/>
        <Button
            android:id="@+id/btn_del"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_margin="2dp"
            android:layout_weight="1"
            android:text="DEL"/>
        <Button
            android:id="@+id/btn_rem"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_margin="2dp"
            android:layout_weight="1"
            android:text="%"/>
        <Button
            android:id="@+id/btn_div"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_margin="2dp"
            android:layout_weight="1"
            android:text="/"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="330dp"
        android:weightSum="3">

        <ImageView
            android:id="@+id/and_gif"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="10dp"
            android:layout_weight="2" />
    </LinearLayout>

</RelativeLayout>