나는, 알파 채널을 사용하는 경우에만 검은 윤곽에서 라운드 기본적으로 만들어 인 imageView
있습니다. 간단한 예로, imageview
을 검정색이 아니고 흰색으로 표시해야합니다. 다른 모든 것은 동일하게 유지해야합니다. 인터넷 검색을 조금 후이 내가 생각 해낸 것입니다 : 적어도 ImageView
에 어떤 영향을해야Xamarin, Android : ImageView.SetColorFilter()가 ImageView에서 아무런 효과가 없습니까?
ImageButton btnHeader = new ImageButton(this);
btnHeader.SetBackgroundResource(Resource.Drawable.mainmenu_btn_news_bol);
btnHeader.SetColorFilter(new Color(Color.White), PorterDuff.Mode.SrcIn);
이 있지만, 그냥하지 않습니다. 마치 코드의 3 번째 줄이 바로 건너 뛰는 것처럼 보입니다. 이것이 버그 또는 나일 경우 누구나 설명해 줄 수 있습니까? ImageButton
에 직접 컬러 필터를 설정
색상 필터를 설정하면 원본 이미지에만 영향을 미치고 배경에는 영향을 미치지 않습니다. 즉, 대신에'btnHeader.SetImageResource (...)'를하면, 그것을 필터링합니다. 특별히 배경을 필터링하려고한다면, 배경 drawable에 직접 필터를 설정해야합니다 :'btnHeader.Background.SetColorFilter (...)'. –
안녕하세요, 고마워요! 이것을 답으로 써서 받아 들일 수 있습니다. 완벽하게 작동합니다! :) 한가지 더 있습니다 : 동일한 액티비티에서 동일한 ImageButton을 두 번 사용합니다. 이제는 필터가 적용된 필터 대신 둘 다 흰색으로 표시됩니다. 너 나 좀 도와 줄 수있어? :) –
그래, 먼저 드로어 블을 돌연변이시킬 수있어 같은 리소스에서 생성 된 다른 것들과 공통의 상태를 공유하지 않는다. 거기에'Mutate()'호출을 삽입하십시오 :'btnHeader.Background.Mutate(). SetColorFilter (...)'. (나는 그것이 맞다고 생각한다. 나는 Xamarin 문법을 추측하고있다.) –