Android에 ShapeDrawable이 있다고 가정 해 보겠습니다. 비트 맵이 아닙니다. 단색 (획 색상)을 다른 색상으로 동적으로 바꾸고 싶습니다. 새로운 원하는 색상은 디자인 타임에 알려지지 않았으며 드로어 블 리소스에 넣을 수 없습니다.
예를 들어, 그림 1 (검은 색은 교체 할 색상을 나타내고 체크 무늬 배경은 모양 외곽선으로 덮이지 않은 배경)에서 이동합니다.
이미지 2에 빨간색은 내가 원하는 색상입니다.
필요한 경우 알파 마스크를 사용하여 모양을 만들 수 있습니다. 예를 들어 필요한 경우 흰색 또는 검은 색을 투명하게하거나 윤곽선을 녹색으로 만들 수 있습니다. 흰색 채우기 색상은 최종 결과에서 흰색으로 유지되어야합니다.
표준 색상 필터 인 ColorMatrixColorFilter 또는 PorterDuffColorFilter를 사용하여이를 달성 할 수 있습니까? 그렇다면 특정 필터를 찾는 데 어려움을 겪고 있습니다. 사용자 정의 ColorFilter가 불가능하다고 가정합니다.
임의의 색상으로 설정하려는 검은 색 테두리와 흰색 내부가 있는 경우 ADD 모드에서 PorterDuff 필터를 사용할 수 있습니다 . 채도이므로 흰색 영역에는 영향을 미치지 않으며 검정은 0이므로 색상을 추가하면 모든 검정 영역이 해당 색상으로 효과적으로 설정됩니다.
예를 들어 빨간색으로 설정하려면 :
drawable.setColorFilter(0x00ff0000, PorterDuff.Mode.ADD);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다