안드로이드 옵션메뉴를 통해 화면 색깔 바꾸기

프로그래밍|2014.01.11 06:00
안드로이드 옵션메뉴를 통해 화면 색깔 바꾸기




안드로이드로 직접 개발을 할 수 있다는 것이 그저 먼 나라 이웃나라이야기 같지만 사실 직접 부딪혀보면 앱을 직접 개발을 할 수 있다는 자부심을 가질 수 있습니다. 누구나 배울 수 만 있다면 끝까지 꾸준히 포기하지 않고 원하는 앱을 만드실 수가 있습니다.

저는 간단 간단한 기능만 아주 소소한 앱을 만들어서 여기 블로그에다가 공개를 할려고 합니다. 누구나 쉽게 접하실 수 있게 말이죠.


옵션메뉴를 통해 배경화면을 빨간색, 파란색, 초록색으로 바꾸는 방법에 대해 알아보아요. 크게 어렵지도 않고 간단하게 되어 있습니다. 주로 옵션메뉴라고 하면 다양한 앱들을 보면 공통점이 있습니다. 하나 같이 옵션메뉴가 있다는 것입니다. 주로 설정이나 부수한 서브메뉴들을 옵션메뉴를 통해 이루어집니다. 소스를 공개도 하겠습니다.

프로젝트 명 : OptionTest

java source

MainActivity.java

package com.example.optiontest;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.RelativeLayout;
import android.widget.Toast;
public class MainActivity extends Activity {
 RelativeLayout linear;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        linear = (RelativeLayout)findViewById(R.id.linear);
    }
   
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        menu.add(0, 1, 0, "초록색");
        menu.add(0, 2, 0, "빨강색");
        menu.add(0, 3, 0, "파란색");
        menu.add(0, 4, 0, "원래대로");
        return true;
    }
   
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
     // TODO Auto-generated method stub
     switch(item.getItemId()) {
     case 1 :
      Toast.makeText(this, "초록색", Toast.LENGTH_LONG).show();
      linear.setBackgroundColor(Color.GREEN);
      break;
     case 2:
      Toast.makeText(this, "빨강색", Toast.LENGTH_LONG).show();
      linear.setBackgroundColor(Color.RED);
      break;
     case 3:
      Toast.makeText(this, "파란색", Toast.LENGTH_LONG).show();
      linear.setBackgroundColor(Color.BLUE);
      break;
     case 4:
      Toast.makeText(this, "원래대로", Toast.LENGTH_LONG).show();
      linear.setBackgroundColor(Color.WHITE);
      break;
     }
     return super.onOptionsItemSelected(item);
    }
}

xml source

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/linear"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    tools:context=".MainActivity" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="배경화면 색 주기" />
</RelativeLayout>

위의 java source 및 xml source 입니다. 한번 직접 이클립스 개발툴에 코딩을 하시면 이해가 되실 것입니다. 복잡하지 않기에 소소하게 아주 간단하게 만든 것입니다.


설명은 정말 간단하게 해드리겠습니다. 혹여 어려분 부분이 있더라도 직접 소스를 입력을 해보고 동작을 해보시면 어떻게 돌아가는지 대충을 알 것입니다. 처음엔 거의 저도 멘땅에 헤딩을 하다 싶이 한 건데, 이제는 어느 정도 익숙해지네요.



java source에서 onCreateOptionsMenu이 부분이 옵션메뉴에 각 각의 메뉴를 나타내는 부분입니다. 예를 들면 빨간색, 파란색, 초록색, 원래대로라는 메뉴가 보여지게 됩니다.

onOptionsItemSelected 이 부분은 옵션메뉴에서 빨간색을 선택을 했을 때 이벤트를 나타내는 부분입니다. 이벤트를 나타내는 부분에는 switch문을 주어서 각각의 순서에 맞게 번호를 지정해 주고 배경색이 바뀌게 하였습니다.

그냥 소스를 보기만 한다면 아쉽게도 여러분 것이 되지 않습니다. 허나 직접 소스를 치는 분은 자기 것으로 만들 수 있는 기회가 될 수 있습니다. 누구나 잘하기를 원하지만 때로는 쉽지 않습니다. 한 번 해보시는게 어느 정도 궁금증이 풀릴거에요.



댓글(12)