상세 컨텐츠

본문 제목

[안드로이드] 내가 선택한 색으로 배경색 변경하는 방법

안드로이드

by aries574 2021. 6. 30. 19:55

본문


2021.01.22 - [안드로이드] - [안드로이드] 안드로이드 스튜디오 기본 색상 가져오는 방법

 

[안드로이드] 안드로이드 스튜디오 기본 색상 가져오는 방법

2021/01/19 - [안드로이드] - [안드로이드] DrawerLayout Navigaion 쉽게 만들어보기 2021/01/19 - [안드로이드] - [안드로이드]DrawerLayout Navigation 메뉴(Menu) 추가하기 2021/01/20 - [안드로이드] - [안드..

aries574.tistory.com

2021.01.23 - [안드로이드] - [안드로이드] 안드로이드 스튜디오 기본 색상 코드에서 가져오는 방법

 

[안드로이드] 안드로이드 스튜디오 기본 색상 코드에서 가져오는 방법

2021/01/19 - [안드로이드] - [안드로이드]DrawerLayout Navigation 메뉴(Menu) 추가하기 2021/01/20 - [안드로이드] - [안드로이드]DrawerLayout Navigation Header 추가하기 2021/01/21 - [안드로이드] - [안드..

aries574.tistory.com

이번 시간에는 색상을 선택하는 화면을 띄워서 사용자가 선택한 색상으로

배경색을 바꾸는 방법을 알아보겠습니다.

색상선택을 보여주는 방법에는 ambilwarna 라이브러리가 필요합니다.

1. 라이브러리 등록(build.gradle)

implementation 'com.github.yukuku:ambilwarna:2.0.1'

2020.12.19 - [안드로이드] - [안드로이드]라이브러리 찾아 등록하는 방법

 

[안드로이드]라이브러리 찾아 등록하는 방법

2020/12/18 - [안드로이드] - [안드로이드]TextSwitcher 글자변환 애니메이션 만들어보기 이번 시간에는 안드로이드 개발을 하면서 원하는 기능을 쓰기 위해 라이브러리를 찾아서 등록하는 방법을 알아

aries574.tistory.com

 

2. 메인화면 코드(activity_main.xml)

<?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:id="@+id/layout"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/openColor"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Open ColorPicker"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"/>

</RelativeLayout>

 

3. 메인코드(MainActivity.java)

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
import yuku.ambilwarna.AmbilWarnaDialog;

public class MainActivity extends AppCompatActivity {

    RelativeLayout layout;

    Button openButton;

    int defaultColor;

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

        layout = findViewById(R.id.layout);

        defaultColor = ContextCompat.getColor(MainActivity.this, R.color.black);

        openButton = findViewById(R.id.openColor);
        openButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                openColorPicker();
            }
        });
    }

    //색상선택화면 호출
    public void openColorPicker(){
        AmbilWarnaDialog colorPicker = new AmbilWarnaDialog(this, defaultColor, new AmbilWarnaDialog.OnAmbilWarnaListener() {
            @Override
            public void onCancel(AmbilWarnaDialog dialog) {
                //취소
            }

            @Override
            public void onOk(AmbilWarnaDialog dialog, int color) {
                
                //선택 한 색을 변수에 담는다.
                defaultColor = color;
                
                //색을 담은 변수를 배경색으로 설정한다.
                layout.setBackgroundColor(defaultColor);
            }
        });
        colorPicker.show();
    }
}

 

4. 실행화면

맘에 드셨다면 공감부탁드려요

문의 댓글 환영합니다.

 

반응형

관련글 더보기

댓글 영역