App/Android Studio

기본 레이아웃

원2 2021. 7. 1. 14:26
728x90
반응형
  • orientation : 레이아웃 안에 배치할 위젯의 수직 또는 수평 방향을 설정
  • gravity : 레이아웃 안에 배치할 위젯의 정렬 방향을 좌측, 우측, 중앙으로 설정
  • padding : 레이아웃 안에 배치할 위젯의 여백을 설정
  • layout_weight : 레이아웃이 전체 화면에서 차지하는 공간의 가중 값을 설정 여러 개의 레이아웃이 중복될 때 주로 사용
  • baselineAligned : 레이아웃 안에 배치할 위젯들을 보기 좋게 정렬
  • Vertical : 리니어레이아웃 안에 포함될 위젯의 배치를 수직방향으로 쌓음
  • Horizontal : 수평 방향으로 쌓겠다는 의미

 


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button1"
        android:text="Button"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView1"
        android:text="TextView"/>

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:id="@+id/checkBox1"
        android:text="checkBox"/>

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/radioButton1"
        android:text="RadioButton"/>

    <Switch
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/wsitch1"
        android:text="Switch"/>


</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button1"
        android:text="Button"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView1"
        android:text="TextView"/>

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/checkBox1"
        android:text="checkBox"/>

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/radioButton1"
        android:text="RadioButton"/>

    <Switch
        android:id="@+id/wsitch1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Switch"/>

</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="right|bottom"
    android:orientation="vertical">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button1"
        android:text="Button"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView1"
        android:text="Textveiw"/>

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/checkBox1"
        android:text="CheckBox"/>

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/radioButton1"
        android:text="RadioButton"/>

    <Switch
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/wsitch1"
        android:text="Switch"/>

</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button1"
        android:gravity="right"
        android:text="오른쪽"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button2"
        android:gravity="center"
        android:text="중앙"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button3"
        android:gravity="left"
        android:text="왼쪽"/>

</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:orientation="vertical" >

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="버튼1"/>

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="버튼2"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#00FF00"
        android:gravity="center"
        android:orientation="horizontal">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="버튼3"/>

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="버튼4"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#0000FF"
        android:gravity="center"
        android:orientation="vertical">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="버튼5"/>

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="버튼6"/>

    </LinearLayout>

</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="vertical">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="버튼1"/>

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="버튼2"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#00FF00"
        android:gravity="center"
        android:orientation="horizontal">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="버튼3"/>

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="버튼4"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#0000FF"
        android:gravity="center"
        android:orientation="vertical">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="버튼5"/>

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="버튼6"/>

    </LinearLayout>

</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center"
        android:orientation="vertical">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="버튼1"/>

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="버튼2"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="#00FF00"
        android:gravity="center"
        android:orientation="horizontal">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="버튼3"/>

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="버튼4"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="#0000FF"
        android:gravity="center"
        android:orientation="vertical">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="버튼5"/>

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="버튼6"/>
    </LinearLayout>

</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:text="위쪽"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:text="좌측"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="중앙"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:text="우측"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:text="아래"/>

</RelativeLayout>

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:id="@+id/baseBtn"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="기준 위젯"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/baseBtn"
        android:layout_toLeftOf="@+id/baseBtn"
        android:text="1번"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/baseBtn"
        android:layout_toLeftOf="@+id/baseBtn"
        android:text="2번"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/baseBtn"
        android:layout_toLeftOf="@+id/baseBtn"
        android:text="3번"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button2"
        android:layout_above="@+id/baseBtn"
        android:layout_alignLeft="@+id/baseBtn"
        android:text="4번"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/baseBtn"
        android:layout_below="@+id/baseBtn"
        android:text="5번"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/baseBtn"
        android:layout_toRightOf="@+id/baseBtn"
        android:text="6번"/>

</RelativeLayout>

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/baseBtn1"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="기준1"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/baseBtn2"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:text="기준2"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/baseBtn2"
        android:layout_toRightOf="@+id/baseBtn1"
        android:text="1번"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/baseBtn1"
        android:text="2번"/>

</RelativeLayout>

<?xml version="1.0" encoding="utf-8"?>
<TableLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tableLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TableRow>

        <Button
            android:layout_width="60dp"
            android:text="1"/>

        <Button
            android:layout_width="60dp"
            android:layout_span="2"
            android:text="2"/>

        <Button
            android:layout_width="60dp"
            android:text="3"/>

    </TableRow>

    <TableRow>

        <Button
            android:layout_width="60dp"
            android:layout_column="1"
            android:text="4"/>

        <Button
            android:layout_width="60dp"
            android:text="5"/>

        <Button
            android:layout_width="60dp"
            android:text="6"/>

    </TableRow>

</TableLayout>

<?xml version="1.0" encoding="utf-8"?>
<TableLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tableLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TableRow>

        <EditText
            android:layout_weight="1"
            android:id="@+id/Edit1"
            android:layout_span="5"
            android:hint="숫자 1 입력"/>

    </TableRow>

    <TableRow>

        <EditText
            android:layout_weight="1"
            android:id="@+id/Edit2"
            android:layout_span="5"
            android:hint="숫자 2 입력"/>
    </TableRow>

    <TableRow>

        <Button
            android:layout_weight="1"
            android:id="@+id/BtnNum0"
            android:text="0"/>

        <Button
            android:layout_weight="1"
            android:id="@+id/BtnNum1"
            android:text="1"/>

        <Button
            android:layout_weight="1"
            android:id="@+id/BtnNum2"
            android:text="2"/>

        <Button
            android:layout_weight="1"
            android:id="@+id/BtnNum3"
            android:text="3"/>

        <Button
            android:layout_weight="1"
            android:id="@+id/BtnNum4"
            android:text="4"/>
    </TableRow>

    <TableRow>

        <Button
            android:layout_weight="1"
            android:id="@+id/BtnNum5"
            android:text="5"/>

        <Button
            android:layout_weight="1"
            android:id="@+id/BtnNum6"
            android:text="6"/>

        <Button
            android:layout_weight="1"
            android:id="@+id/BtnNum7"
            android:text="7"/>

        <Button
            android:layout_weight="1"
            android:id="@+id/BtnNum8"
            android:text="8"/>

        <Button
            android:layout_weight="1"
            android:id="@+id/BtnNum9"
            android:text="9"/>
    </TableRow>

    <TableRow>

        <Button
            android:layout_weight="1"
            android:id="@+id/BtnAdd"
            android:layout_margin="5dp"
            android:layout_span="5"
            android:text="더하기"/>
    </TableRow>

    <TableRow>

        <Button
            android:layout_weight="1"
            android:id="@+id/BtnSub"
            android:layout_margin="5dp"
            android:layout_span="5"
            android:text="빼기"/>
    </TableRow>

    <TableRow>

        <Button
            android:layout_weight="1"
            android:id="@+id/BtnMul"
            android:layout_margin="5dp"
            android:layout_span="5"
            android:text="곱하기"/>
    </TableRow>

    <TableRow>

        <Button
            android:layout_weight="1"
            android:id="@+id/BtnDiv"
            android:layout_margin="5dp"
            android:layout_span="5"
            android:text="나누기"/>
    </TableRow>

    <TableRow>

        <TextView
            android:id="@+id/TextResult"
            android:layout_margin="5dp"
            android:layout_span="5"
            android:text="계산 결과 : "
            android:textColor="#FF0000"
            android:textSize="20dp"/>

    </TableRow>

</TableLayout>

<?xml version="1.0" encoding="utf-8"?>
<GridLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:columnCount="4"
    android:rowCount="2">

    <Button
        android:layout_column="0"
        android:layout_gravity="fill_vertical"
        android:layout_row="0"
        android:layout_rowSpan="2"
        android:text="1"/>

    <Button
        android:layout_column="1"
        android:layout_columnSpan="2"
        android:layout_gravity="fill_horizontal"
        android:layout_row="0"
        android:text="2"/>

    <Button
        android:layout_column="3"
        android:layout_row="0"
        android:text="3"/>

    <Button
        android:layout_column="1"
        android:layout_row="1"
        android:text="4"/>

    <Button
        android:layout_column="2"
        android:layout_row="1"
        android:text="5"/>

    <Button
        android:layout_column="3"
        android:layout_row="1"
        android:text="6"/>
</GridLayout>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:layout_width="110dp"
        android:layout_height="100dp"
        android:id="@+id/btn1"
        android:text="버튼1"
        android:layout_gravity="center"
        android:gravity="top|right"/>

    <Button
        android:layout_width="110dp"
        android:layout_height="100dp"
        android:id="@+id/btn2"
        android:text="버튼2"
        android:layout_gravity="left"
        android:gravity="center|left"/>

    <Button
        android:layout_width="110dp"
        android:layout_height="100dp"
        android:id="@+id/btn3"
        android:layout_gravity="right"
        android:gravity="bottom|right"
        android:text="버튼3"/>

</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:layout_weight="1">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:background="#ff0000"
            android:layout_weight="1"
            android:layout_gravity="left">

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:layout_gravity="right"
            android:layout_weight="1">



            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="#ffff00"
                android:orientation="vertical"
                android:layout_weight="1">

            </LinearLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="#000000"
                android:orientation="vertical"
                android:layout_weight="1">

            </LinearLayout>

        </LinearLayout>




    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#0000ff"
        android:orientation="vertical"
        android:layout_weight="1">

    </LinearLayout>

</LinearLayout>

코드로만 레이아웃 잡기

 

package com.cookandroid.project5_1;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_main);

        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.MATCH_PARENT,
                LinearLayout.LayoutParams.MATCH_PARENT
        );
//        아래의 this 는 여기 엑티비티.
        LinearLayout baseLayout = new LinearLayout(this);
        baseLayout.setOrientation(LinearLayout.VERTICAL);
        baseLayout.setBackgroundColor(Color.rgb(100,205,150));
//        레이아웃을 View에 꽂는다.
        setContentView(baseLayout,params);

        EditText edit1 = new EditText(this);
        edit1.setHint("에딧창");
        baseLayout.addView(edit1);

        Button btn = new Button(this);
        btn.setText("버튼입니다만?");
        btn.setBackgroundColor(Color.MAGENTA);
//        버튼을 베이스레이아웃에 꽂는다.
        baseLayout.addView(btn);


        TextView tv1 = new TextView(this);
        tv1.setText("결과");
        tv1.setTextSize(30);
        tv1.setTextColor(Color.BLUE);
        baseLayout.addView(tv1);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String str = new String();
                str = edit1.getText().toString();
                tv1.setText(str);

                Toast.makeText(getApplicationContext(),"코드로 작성한 버튼이걸랑요?",Toast.LENGTH_SHORT).show();
            }
        });
//        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
//                LinearLayout.LayoutParams.MATCH_PARENT,
//                LinearLayout.LayoutParams.MATCH_PARENT
//        );


    }
}

간단한 계산기

테이블 레이아웃의 xml

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TableRow>

        <EditText
            android:id="@+id/edit1"
            android:layout_span="5"
            android:layout_weight="1"
            android:hint="숫자1 입력칸" />
    </TableRow>

    <TableRow>

        <EditText
            android:id="@+id/edit2"
            android:layout_span="5"
            android:layout_weight="1"
            android:hint="숫자2 입력칸" />
    </TableRow>

    <TableRow>

        <Button
            android:id="@+id/BtnNum0"
            android:layout_weight="1"
            android:text="0" />

        <Button
            android:id="@+id/BtnNum1"
            android:layout_weight="1"
            android:text="1" />

        <Button
            android:id="@+id/BtnNum2"
            android:layout_weight="1"
            android:text="2" />

        <Button
            android:id="@+id/BtnNum3"
            android:layout_weight="1"
            android:text="3" />

        <Button
            android:id="@+id/BtnNum4"
            android:layout_weight="1"
            android:text="4" />

    </TableRow>

    <TableRow>

        <Button
            android:id="@+id/BtnNum5"
            android:layout_weight="1"
            android:text="5" />

        <Button
            android:id="@+id/BtnNum6"
            android:layout_weight="1"
            android:text="6" />

        <Button
            android:id="@+id/BtnNum7"
            android:layout_weight="1"
            android:text="7" />

        <Button
            android:id="@+id/BtnNum8"
            android:layout_weight="1"
            android:text="8" />

        <Button
            android:id="@+id/BtnNum9"
            android:layout_weight="1"
            android:text="9" />

    </TableRow>

    <TableRow>

        <Button

            android:id="@+id/BtnAdd"
            android:layout_margin="5dp"
            android:layout_span="5"
            android:layout_weight="1"
            android:text="더하기" />

    </TableRow>

    <TableRow>

        <Button
            android:id="@+id/BtnSub"
            android:layout_margin="5dp"
            android:layout_span="5"
            android:layout_weight="1"
            android:text="빼기" />

    </TableRow>

    <TableRow>

        <Button
            android:id="@+id/BtnMul"
            android:layout_margin="5dp"
            android:layout_span="5"
            android:layout_weight="1"
            android:text="곱하기" />

    </TableRow>

    <TableRow>

        <Button
            android:id="@+id/BtnDiv"
            android:layout_margin="5dp"
            android:layout_span="5"
            android:layout_weight="1"
            android:text="나누기" />

    </TableRow>

    <TableRow>

        <Button
            android:id="@+id/BtnCe"
            android:layout_margin="5dp"
            android:layout_span="5"
            android:layout_weight="1"
            android:text="지우기" />

    </TableRow>

    <TableRow>

        <TextView
            android:id="@+id/textResult"
            android:layout_margin="5dp"
            android:layout_span="5"
            android:layout_weight="1"
            android:text="계산 결과 : "
            android:textColor="#FF0000"
            android:textSize="20dp" />


    </TableRow>


</TableLayout>

그리드 레이아웃의 xml

<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:columnCount="5"
    android:orientation="vertical"
    android:rowCount="10">

    <EditText
        android:id="@+id/edit1"
        android:layout_gravity="fill_horizontal"
        android:layout_columnSpan="5"
        android:hint="숫자 1 영역" />

    <EditText
        android:id="@+id/edit2"
        android:layout_gravity="fill_horizontal"
        android:layout_columnSpan="5"
        android:hint="숫자 2 영역" />

    <GridLayout>
        <Button
            android:width="0dp"
            android:layout_row="3"
            android:layout_column="1"
            android:id="@+id/BtnNum0"
            android:layout_width="wrap_content"
            android:layout_weight="1"
            android:text="0" />

        <Button
            android:layout_row="3"
            android:layout_column="2"
            android:id="@+id/BtnNum1"
            android:layout_weight="1"
            android:text="1" />

        <Button
            android:layout_row="3"
            android:layout_column="3"
            android:id="@+id/BtnNum2"
            android:layout_weight="1"
            android:text="2" />

        <Button
            android:layout_row="3"
            android:layout_column="4"
            android:id="@+id/BtnNum3"
            android:layout_weight="1"
            android:text="3" />

        <Button
            android:layout_row="3"
            android:layout_column="5"
            android:id="@+id/BtnNum4"
            android:layout_weight="1"
            android:text="4" />
    </GridLayout>

    <GridLayout>

        <Button
            android:id="@+id/BtnNum5"
            android:layout_weight="1"
            android:text="5" />

        <Button
            android:id="@+id/BtnNum6"
            android:layout_weight="1"
            android:text="6" />

        <Button
            android:id="@+id/BtnNum7"
            android:layout_weight="1"
            android:text="7" />

        <Button
            android:id="@+id/BtnNum8"
            android:layout_weight="1"
            android:text="8" />

        <Button
            android:id="@+id/BtnNum9"
            android:layout_weight="1"
            android:text="9" />
    </GridLayout>


    <Button

        android:id="@+id/BtnAdd"
        android:layout_gravity="fill_horizontal"
        android:layout_margin="5dp"
        android:layout_span="5"
        android:layout_weight="1"
        android:text="더하기" />


    <Button
        android:id="@+id/BtnSub"
        android:layout_gravity="fill_horizontal"
        android:layout_margin="5dp"
        android:layout_span="5"
        android:layout_weight="1"
        android:text="빼기" />


    <Button
        android:id="@+id/BtnMul"
        android:layout_gravity="fill_horizontal"
        android:layout_margin="5dp"
        android:layout_span="5"
        android:layout_weight="1"
        android:text="곱하기" />


    <Button
        android:id="@+id/BtnDiv"
        android:layout_gravity="fill_horizontal"
        android:layout_margin="5dp"
        android:layout_span="5"
        android:layout_weight="1"
        android:text="나누기" />


    <Button
        android:id="@+id/BtnCe"
        android:layout_gravity="fill_horizontal"
        android:layout_margin="5dp"
        android:layout_span="5"
        android:layout_weight="1"
        android:text="지우기" />


    <TextView
        android:id="@+id/textResult"
        android:layout_gravity="fill_horizontal"
        android:layout_margin="5dp"
        android:layout_span="5"
        android:layout_weight="1"
        android:text="계산 결과 : "
        android:textColor="#FF0000"
        android:textSize="20dp" />


</GridLayout>
package com.cookandroid.ex5_2;

import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    EditText edit1, edit2;
    Button btnadd, btnsub, btnmul, btndiv, btnce;
    TextView textresult;
    String num1, num2;
    Integer result;

    Button[] numButtons = new Button[10];
    Integer[] numBtnIDs = {R.id.BtnNum0, R.id.BtnNum1, R.id.BtnNum2, R.id.BtnNum3,
            R.id.BtnNum4, R.id.BtnNum5, R.id.BtnNum6, R.id.BtnNum7, R.id.BtnNum8, R.id.BtnNum9};

    int i;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_main);
        setContentView(R.layout.testgird);

//        setTitle("테이블 레이아웃 계산기");

        setTitle("릴레이티브 레이아웃 계산기");

        edit1 = (EditText) findViewById(R.id.edit1);
        edit2 = (EditText) findViewById(R.id.edit2);
        btnadd = (Button) findViewById(R.id.BtnAdd);
        btnsub = (Button) findViewById(R.id.BtnSub);
        btnmul = (Button) findViewById(R.id.BtnMul);
        btndiv = (Button) findViewById(R.id.BtnDiv);
        btnce = (Button) findViewById(R.id.BtnCe);
        textresult = (TextView) findViewById(R.id.textResult);

        for (i = 0; i < numBtnIDs.length; i++) {
            numButtons[i] = (Button) findViewById(numBtnIDs[i]); // 버튼을 배열에 장착>> 바인딩
        }
        for (i = 0; i < numBtnIDs.length; i++) { // 인덱스는 숫자 를 입력한것,
            final int index;
            index = i;

            numButtons[index].setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (edit1.isFocused() == true) {
                        num1 = edit1.getText().toString() + numButtons[index].getText().toString();
                        edit1.setText(num1); // edit1에 포커스가 맞춰지면, index를 edit1 에 셋팅
                    } else if (edit2.isFocused() == true) {
                        num2 = edit2.getText().toString() + numButtons[index].getText().toString();
                        edit2.setText(num2);
                    } else {
                        Toast.makeText(getApplicationContext(), "먼저 에디트텍스트를 선택하세요", Toast.LENGTH_SHORT).show();
                    }
                }
            });
        }


        btnadd.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();
                result = Integer.parseInt(num1) + Integer.parseInt(num2);
                textresult.setText("계산 결과 : " + result.toString());
                return false;
            }
        });
        btnsub.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();
                result = Integer.parseInt(num1) - Integer.parseInt(num2);
                textresult.setText("계산 결과 : " + result.toString());
                return false;
            }
        });
        btnmul.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();
                result = Integer.parseInt(num1) * Integer.parseInt(num2);
                textresult.setText("계산 결과 : " + result.toString());
                return false;
            }
        });
        btndiv.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();
                result = Integer.parseInt(num1) / Integer.parseInt(num2);
                textresult.setText("계산 결과 : " + result.toString());
                return false;
            }
        });

        btnce.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                edit1.setText("");
                edit2.setText("");
                return false;
            }
        });

    }
}

 

728x90
반응형

'App > Android Studio' 카테고리의 다른 글

휴대폰 테스트 설정 / 앱 배포  (0) 2022.10.14
안드로이드 개발 가이드 문서 링크  (0) 2022.05.16
고급 위젯  (0) 2021.07.01
Activity All finish  (0) 2021.06.11
Intent  (0) 2021.06.10
SDK 다운로드  (0) 2021.06.09