안드로이드 옵션메뉴를 통해 화면 색깔 바꾸기
프로그래밍2014. 1. 11. 06:00
안드로이드 옵션메뉴를 통해 화면 색깔 바꾸기
안드로이드로 직접 개발을 할 수 있다는 것이 그저 먼 나라 이웃나라이야기 같지만 사실 직접 부딪혀보면 앱을 직접 개발을 할 수 있다는 자부심을 가질 수 있습니다. 누구나 배울 수 만 있다면 끝까지 꾸준히 포기하지 않고 원하는 앱을 만드실 수가 있습니다.
저는 간단 간단한 기능만 아주 소소한 앱을 만들어서 여기 블로그에다가 공개를 할려고 합니다. 누구나 쉽게 접하실 수 있게 말이죠.
옵션메뉴를 통해 배경화면을 빨간색, 파란색, 초록색으로 바꾸는 방법에 대해 알아보아요. 크게 어렵지도 않고 간단하게 되어 있습니다. 주로 옵션메뉴라고 하면 다양한 앱들을 보면 공통점이 있습니다. 하나 같이 옵션메뉴가 있다는 것입니다. 주로 설정이나 부수한 서브메뉴들을 옵션메뉴를 통해 이루어집니다. 소스를 공개도 하겠습니다.
프로젝트 명 : OptionTest
위의 java source 및 xml source 입니다. 한번 직접 이클립스 개발툴에 코딩을 하시면 이해가 되실 것입니다. 복잡하지 않기에 소소하게 아주 간단하게 만든 것입니다.
프로젝트 명 : OptionTest
java source
MainActivity.java
package com.example.optiontest;
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;
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;
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);
}
}
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" >
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="배경화면 색 주기" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="배경화면 색 주기" />
</RelativeLayout>
위의 java source 및 xml source 입니다. 한번 직접 이클립스 개발툴에 코딩을 하시면 이해가 되실 것입니다. 복잡하지 않기에 소소하게 아주 간단하게 만든 것입니다.
설명은 정말 간단하게 해드리겠습니다. 혹여 어려분 부분이 있더라도 직접 소스를 입력을 해보고 동작을 해보시면 어떻게 돌아가는지 대충을 알 것입니다. 처음엔 거의 저도 멘땅에 헤딩을 하다 싶이 한 건데, 이제는 어느 정도 익숙해지네요.
java source에서 onCreateOptionsMenu이 부분이 옵션메뉴에 각 각의 메뉴를 나타내는 부분입니다. 예를 들면 빨간색, 파란색, 초록색, 원래대로라는 메뉴가 보여지게 됩니다.
onOptionsItemSelected 이 부분은 옵션메뉴에서 빨간색을 선택을 했을 때 이벤트를 나타내는 부분입니다. 이벤트를 나타내는 부분에는 switch문을 주어서 각각의 순서에 맞게 번호를 지정해 주고 배경색이 바뀌게 하였습니다.
java source에서 onCreateOptionsMenu이 부분이 옵션메뉴에 각 각의 메뉴를 나타내는 부분입니다. 예를 들면 빨간색, 파란색, 초록색, 원래대로라는 메뉴가 보여지게 됩니다.
onOptionsItemSelected 이 부분은 옵션메뉴에서 빨간색을 선택을 했을 때 이벤트를 나타내는 부분입니다. 이벤트를 나타내는 부분에는 switch문을 주어서 각각의 순서에 맞게 번호를 지정해 주고 배경색이 바뀌게 하였습니다.
그냥 소스를 보기만 한다면 아쉽게도 여러분 것이 되지 않습니다. 허나 직접 소스를 치는 분은 자기 것으로 만들 수 있는 기회가 될 수 있습니다. 누구나 잘하기를 원하지만 때로는 쉽지 않습니다. 한 번 해보시는게 어느 정도 궁금증이 풀릴거에요.
'프로그래밍' 카테고리의 다른 글
Java 간단한 인터페이스 예제 (0) | 2014.09.25 |
---|---|
JAVA 숫자 및 금액 천 단위 콤마 나타내기 (9) | 2014.04.17 |
안드로이드 TextView에 html 적용하기 (8) | 2014.04.16 |
안드로이드 스피너뷰 색상 입히기 (12) | 2014.04.10 |
미완성인 감사어플 (13) | 2014.01.25 |
안드로이드 글씨 색깔 바꾸기 어플 간단히 만들기 (16) | 2013.12.20 |
안드로이드 values - String.xml에서 생기는 is not translated in ko 에러 해결방법 (14) | 2013.08.12 |
HTML을 처음 접할 때 기억을 되새기다 (14) | 2013.05.29 |
안드로이드와 외부서버와의 통신방법 (7) | 2013.05.11 |
안드로이드 표 테이블 만들기 - 홈페이지 표와 비슷하게 만들기 (13) | 2013.05.10 |
댓글()