2017-04-16 2 views
0

메뉴 항목 색상을 Color.WHITE으로 색칠하려고하지만 어떤 이유로 제대로 작동하지 않습니다.작업 표시 줄 메뉴 항목의 색상이 제대로 색이 맞지 않습니다.

이런 일이 왜 내가하고 싶은 모든 변화가있을 때

enter image description here

Drawable drawable = menu.findItem(R.id.action_info).getIcon(); 
    drawable.setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN); 
    menu.findItem(R.id.action_info).setIcon(drawable); 

가 이해가 안 염색 후

enter image description here

염색하기 전에 아이콘 colou 회색에서 흰색으로 r.

답변

1

DrawableCompat과 관련이있을 수 있습니다. 당신이 원하는 recolouring 정확히 어떤 종류를 지정할 수 있습니다 나는 항상 PorterDuff와 ColorFilter를 사용하여 염색을 다음과 같이 변경하는

시도를 (SRC_IN 대부분 내가 달성하고자하는 결과에 맞는) :

Drawable drawable = menu.findItem(R.id.action_info).getIcon(); 
drawable.setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN); 
menu.findItem(R.id.action_info).setIcon(drawable); // Actualy, we don't need to do this 

편집 :

나는 본다. 이 효과는 사용중인 이미지로 인해 발생합니다. 난 당신이 불투명도가 기본 아이콘 ic_menu_info_details을 사용하는 것 같아요. 필요에 따라 그것을 색칠하기 위해 자신의 아이콘을 사용하는 것이 좋습니다.

기본적으로 불투명도가없는 동일한 아이콘을 사용할 수 있습니다. 그리고이 PorterDuff 메서드는 예상대로 작동합니다 (이전 코드도 마찬가지입니다).

아이콘을 쉽게 찾고 프로젝트에 추가 할 수 있습니다.

옵션 1 :

옵션 2 :

,536,
  • 벡터 드로어 블을 사용하면 각 장치에서도 이미지의 크기가 자동으로 조정됩니다.[Info] 아이콘

망가 변경하는 것을 잊지

을 변경 아이콘 버튼을 클릭>Vector Asset

  • , 찾아 -

  • 오른쪽 New에 당김 폴더에

  • 이동을 클릭합니다 menu.xml이므로 새 아이콘을 사용하십시오.

  • 관련 문제