Programming Language/Android Programming

메뉴 라디오버튼

D4tai1 2018. 10. 9.

1. 메뉴에 라디오버튼 사용하기

1) 그림 첨부

- 3개의 그림을 [res - drawable]에 첨부한다.

 

2) activity_main.xml 설정

- RelativeLayout을 사용하고 아래에 TextView, EditText, ImageView 위젯을 넣었다.

- id와 text는 위 그림과 같이 세팅하였다.

 

- 위 그림과 같이 textView1 옆에 나오게 하도록 아래그림과 같이 설정한다.

 

- layout_toRightOf 속성에 textView1을 적어 textView1의 오른쪽에 edtAngle을 배치한다.

 

- imageView는 위 그림과 같이 중앙정렬 하기위해 아래 그림과 같이 설정한다.

 

- layout_centerHorizontal과 layout_centerVertical을 모두 체크해서 ImageView가 중앙에 오도록 한다.

 

3) menu1.xml 설정

- 그림회전이 가능하도록 [Menu Item]을 하나 넣고 Group를 생성하고 하위에 3개의 [Menu Item]을 생성한다.

- id와 title은 위 그림과 같이 설정한다.

 

- Group의 checkableBehavior 속성의 값을 [single]로 설정한다.

- 이렇게 할 경우 라디오 버튼 중 그룹 내 라디오 버튼 중 하나만 선택이 가능하다.

 

- itemHan의 checked 속성을 선택하여 기본값을 정해준다.

 

4) MainActivity.java 소스

package com.example.d4tai1.pro20181008a_2;

import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    RelativeLayout relativeLayout;
    TextView textView;
    EditText editText;
    ImageView imageView;


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

        //relativeLayout = (RelativeLayout)findViewById(R.id.relativeLayout1);
        //textView = (TextView)findViewById(R.id.textView1);
        editText = (EditText)findViewById(R.id.edtAngle);
        imageView = (ImageView)findViewById(R.id.imageView);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater mInflater = getMenuInflater();
        mInflater.inflate(R.menu.menu1,menu);
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch(item.getItemId()) {
            case R.id.itemHan:
                imageView.setImageResource(R.drawable.jeju1);
                //한라산 그림 출력
                return true;    //정상적으로 실행되었음을 반환
            case R.id.itemChu:
                imageView.setImageResource(R.drawable.jeju2);
                //추자도 그림 출력
                return true;    //정상적으로 실행되었음을 반환
            case R.id.itemBeum:
                imageView.setImageResource(R.drawable.jeju3);
                //범섬 그림 출력
                return true;    //정상적으로 실행되었음을 반환
            case R.id.itemRotate:
                imageView.setRotation(Float.parseFloat(editText.getText().toString()));
                // editText는 edtAngle의 값을 가져왔고 그것을 실수형으로 변환해서 그림을 회전한다.
                return true;

        }
        return super.onOptionsItemSelected(item);
    }
}

 

 

5) 시연

- 한라산에 checked 되어있다.

- 각도 입력 후 그림회전을 누를 시 각도만큼 그림이 회전된다.

- 한라산 추자도 범섬 중 하나를 누르면 해당하는 그림이 출력된다.

'Programming Language > Android Programming' 카테고리의 다른 글

메세지 띄우기  (0) 2018.10.09
다중메뉴  (0) 2018.10.09
메뉴버튼  (0) 2018.10.09
계산기, 예약  (0) 2018.09.18
레이아웃  (0) 2018.09.14

댓글