* 옵션메뉴 *
옵션메뉴는 컨텐스트 메뉴와는 다르게 옵션버튼(메뉴버튼)을 통해 호출되는
녀석이다.
보통 하단에서 올라오게 되는데, activity에서 해당 이벤트 콜백 메쏘드를 오버라이드해
작성해 주면 된다.
public boolean onCraetOptionsMenu(Menu menu);
public boolean onPrepareOptionsMenu(Menu menu);
public boolean onOptionsItemSelected(MenuItem item);
뭐 옵션메뉴 관련한 예제는 많이 있으니 생략하고~
이 옵션메뉴의 배경색을 바꿀수 있을까?.. 옵션 아이템에 배경이미지를 넣을 수 있을까?
배경을 바꿔주기 위한 메쏘드를 하나 구현한다.
protected void setOptionMenuBG() {
Factory factory = new Factory() {
public View onCreateView(String name, Context context, AttributeSet attrs) {
if( name.equalsIgnoreCase("com.android.internal.view.menu.IconMenuItemView" )) {
LayoutInflater f = getLayoutInflater();
final View view = f.createView(name, null, null );
new Handler().post( new Runnable() {
public void run() {
// 색상변경
view.setBackgroundColor( Color.argb(50, 200, 20, 20) );
// 배경 변경
view.setBackgroundDrawable(getResources().getDrawable(R.drawable.my_icon) );
}
});
return view;
}
return null;
}
};
getLayoutInflater().setFactory(factory);
}
이 메쏘드를
public boolean onCraetOptionsMenu(Menu menu); 에서 한번 호출해 주면 된다.
요녀석은 각 메뉴 아이템이 생성될때 처리되는 프로세스에 끼어 들어가 생성되는 뷰가
옵션 아이템(IconMenuItemView)인 경우 해당 설정을 변경토록 하는 녀석이다.
음.. 이것저것 만져보면 재밌을듯~
'프로그래밍 > Android' 카테고리의 다른 글
ffmpeg 빌드 #2 ffmpeg 옵션별 빌드 (0) | 2011.07.06 |
---|---|
ffmpeg 라이브러리 빌드 #1 (0) | 2011.06.30 |
Drag&drop listview (0) | 2010.10.06 |
뷰 전환시 3차원 에니메이션 적용하기 (0) | 2010.09.17 |
안드로이드 위젯 배경 이미지, 나인패치 (0) | 2010.08.17 |
갤러리, 커버플로우 구현 (0) | 2010.07.27 |
AppWidget 여러 개의 위젯을 가진 앱위젯 (0) | 2010.07.09 |
OpenGL 사용하기 (0) | 2010.06.27 |
소켓통신 기본사항 (0) | 2010.06.11 |
OpenCore Codec 연동 (0) | 2010.03.27 |