상세 컨텐츠

본문 제목

[안드로이드] 원형메뉴(CircleMenu) 쉽게 만드는 방법

안드로이드

by aries574 2022. 2. 23. 06:39

본문


이번 시간에는 원형버튼을 클릭하면

퍼지면서 원형메뉴를 보여주는

방법을 알아보겠습니다. 


목차

1. 실행 화면

2. 라이브러리 등록

3. 메인 화면 구성 activity_main.xml

4. 메인 코드 구현 MainActivity.java


1. 실행 화면


2. 라이브러리 등록

build.gradle(Module:프로젝트명:app)

dependencies 괄호 안에 아래 코드를 넣어주시면 됩니다.

mplementation 'com.github.Hitomis:CircleMenu:v1.1.0'

setting.gradle

repositories 괄호 안에 아래 코드를 넣어주시면 됩니다.

maven { url 'https://jitpack.io' }

 참조 문서

https://github.com/Hitomis/CircleMenu

 

GitHub - Hitomis/CircleMenu: Delicate, chic and supports customizable circle menu

Delicate, chic and supports customizable circle menu - GitHub - Hitomis/CircleMenu: Delicate, chic and supports customizable circle menu

github.com

 

 

3. 메인 화면 구성 activity_main.xml

 

 - 설명 - 

 1. 원형메뉴 하나 , 텍스트뷰 하나

 2. 원형메뉴 선택하면 텍스트뷰에 해당메뉴

 이름이 보여집니다.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:id="@+id/main_layout"
    tools:context=".MainActivity">

    <com.hitomi.cmlibrary.CircleMenu
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_centerHorizontal="true"
        android:id="@+id/circle_menu"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:textSize="30sp"
        android:id="@+id/title_textView"/>

</RelativeLayout>



4. 메인 코드 구현 MainActivity.java

 - 설명 -

 setMainMenu: 처음 보여지는 아이콘과 누르면 보여지는 아이콘 설정

 addSubMenu: 가운테 아이콘 누르면 양옆으로 보여지는 아이콘 설정

 onMenuSelected: 메뉴 선택하면 실행되는 메소드

 onMenuOpened: 메뉴 열릴 때 실행되는 메소드

 onMenuClosed: 메뉴 닫힐 때 실행되는 메소드

public class MainActivity extends AppCompatActivity {

    RelativeLayout mainLayout;

    TextView titleTextView;

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

        mainLayout = findViewById(R.id.main_layout);

        titleTextView = findViewById(R.id.title_textView);

        CircleMenu circleMenu = findViewById(R.id.circle_menu);
        
        //메뉴 설정
        circleMenu.setMainMenu(Color.parseColor("#CDCDCD"), R.drawable.ic_menu, R.drawable.ic_cancel)
                .addSubMenu(Color.parseColor("#D50000"), R.drawable.ic_settings) //빨강
                .addSubMenu(Color.parseColor("#2962FF"), R.drawable.ic_image_search) //파랑
                .addSubMenu(Color.parseColor("#1B5E20"), R.drawable.ic_notifications) // 초록

                .setOnMenuSelectedListener(new OnMenuSelectedListener() {
                    @Override
                    public void onMenuSelected(int index) {

                        switch(index){
                            case 0:
                                mainLayout.setBackgroundColor(Color.parseColor("#EF9A9A"));//빨강
                                titleTextView.setText("Setting");
                                break;
                            case 1:
                                mainLayout.setBackgroundColor(Color.parseColor("#90CAF9"));//파랑
                                titleTextView.setText("Search");
                                break;
                            case 2:
                                mainLayout.setBackgroundColor(Color.parseColor("#A5D6A7"));//초록
                                titleTextView.setText("Notification");
                                break;
                        }

                    }
                }).setOnMenuStatusChangeListener(new OnMenuStatusChangeListener() {
            @Override
            public void onMenuOpened() {
                //메뉴 열릴 때 실행할 기능 구현
            }

            @Override
            public void onMenuClosed() {
                //메뉴 닫힐 때 실행할 기능 구현
            }
        });
    }//onCreate
}//MainActivity

2022.02.22 - [안드로이드] - [안드로이드] NavigationDrawer 쉽게 꾸미는 방법

 

[안드로이드] NavigationDrawer 쉽게 꾸미는 방법

이번 시간에는 Navigation Drawer 쉽게 꾸미는 방법에 대하여 알아보겠습니다. 목차 1. 실행 화면 2. 라이브러리 등록 3. 프래그먼트 생성 4. 메인 화면 구성 activity_main.xml 5. 메인 코드 구현 MainActiv..

aries574.tistory.com

2022.02.21 - [안드로이드] - [안드로이드] 선택자(Selector) 체크(checked) 체크박스(checkBox) 쉽게 활성화/비활성화 하는 방법 drawable.xml

 

[안드로이드] 선택자(Selector) 체크(checked) 체크박스(checkBox) 쉽게 활성화/비활성화 하는 방법 drawabl

이번 시간에는 체크박스의 체크상태에 따라 색상이 변경되고, 체크상태에 따라 버튼(Button)이 비활성화되었다가 활성화되는 방법에 대하여 알아보겠습니다. 목차 1. 실행 화면 2. 모양 drawable파

aries574.tistory.com

2022.02.20 - [안드로이드] - [안드로이드] 선택자(Selector) 포커스(Focused) 에디트텍스트(EditText) 쉽게 외곽선, 색상 주는 방법 drawable.xml

 

[안드로이드] 선택자(Selector) 포커스(Focused) 에디트텍스트(EditText) 쉽게 외곽선, 색상 주는 방법 dra

이번 시간에는 에디트텍스트(EditText)에 포커스(Focus)되면 외곽선, 색상주는 방법에 대하여 알아보겠습니다. 목차 1. 실행 화면 2. 모양 drawable파일 만들기 3. 선택자 포커스 drawable 파일 만들기  4.

aries574.tistory.com

반응형

관련글 더보기

댓글 영역