============FAIL============
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.my_menu, menu);
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
menu.findItem(R.id.menu1).setEnabled(isEnable);
if(isEnable){
menu.findItem(R.id.menu1).setIcon(R.drawable.menu1_icon);
}else{
Drawable icon = getResources().getDrawable(R.drawable.menu1_icon);
icon.setAlpha(255*4/10);
menu.findItem(R.id.menu1).setIcon(icon);
}
return super.onPrepareOptionsMenu(menu);
}
enable/disable 상태에 따라 menu icon의 alpha 값을 조절하여 표시하고자 하였으나
동일한 icon resource 인 경우 setIcon으로는 alpha값이 변경된 icon으로 업데이트 되지 않는다.
============PASS============
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.my_menu, menu);
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
menu.findItem(R.id.menu1).setEnabled(isEnable);
Drawable icon = menu.findItem(R.id.menu1).getIcon();
if(icon == null){
menu.findItem(R.id.menu1).setIcon(R.drawable.menu1_icon);
icon = menu.findItem(R.id.menu1).getIcon();
}
icon.setAlpha(255);
}else{
icon.setAlpha(255*4/10);
}
icon.invalidateSelf();
return super.onPrepareOptionsMenu(menu);
}
'programmer > android' 카테고리의 다른 글
content observer (0) | 2013.07.17 |
---|---|
media scanner (0) | 2013.07.16 |
Using TabHost (0) | 2013.07.11 |
AlertDialog Message with List(Custom View) (0) | 2013.07.08 |
Using context menu on Linearlayout (0) | 2013.07.08 |