이미지 버튼의 배경을 변경하고 싶습니다. 기본적으로 내가 가지고있는 이미지는 투명한 배경과 비뚤어진 배경이 모두있는 수많은 비열한면에서 멋지게 보입니다.ImageButton 배경의 한 상태 (기본 상태) 만 변경하십시오.
이 쉬워야한다 - 단지 (드로어 블을 통해) 투명한 색으로 버튼에 android:background
을 변경 : 다음 click_background.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true"><color android:color="#FF008080" />
</item>
<item android:state_pressed="true"><color android:color="#FF008080" />
</item>
<item><color android:color="#00000000" />
</item>
</selector>
버튼
<ImageButton
android:id="@+id/players"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:background="@drawable/click_background"
android:contentDescription="@string/players"
android:src="@drawable/speaker_tile" />
문제은 실제로 배경의 state_focussed
및 state_pressed
버전을 유지하려는 것입니다. (테마에서 파생 된 것 같습니다). 버튼을 눌렀을 때 테마가 일반적으로 사용하게 될 버튼을 누르거나 선택했을 때 배경이 나타나게하고 싶습니다 (정확하게 동일한 색상/드로어 블과 함께 나타납니다).
나는 다음 중 하나를 수행 할 수있는 방법이 있는지 궁금했지만, 지금까지 중 하나에 아무것도 찾을 수 없었습니다 : 비슷한
일부에서 무슨 일이 서로 상속 선택기 정의를 (테마가 다른 것에서 상속받을 수있는 방법).
완전히 새로운 선택기를 만들지 만 이미지 버튼에 사용 된 테마는
state_focussed
및state_pressed
의 색상/드로어 블을 사용합니다. 편집 :이 옵션이없는 것 같습니다. 나는 속성을 필요로했을 것이다. 그러나 drawable에서 그것들을 참조 할 수는 없다. See here
나는 가능하면 프로그래밍 자바보다는 선언적 XML에서이 작업을 수행하고 싶습니다.
감사합니다. 내가 찾고있는 드로어 블 디렉토리의 항목에 대한 힌트가 있습니까? 검색하는 것이 많습니다. –
ImageButton이 일반 Button과 동일한 배경을 사용한다고 생각합니다. 또한 플랫폼 수준에 따라 다릅니다. 최신 버전의 Android에서는 btn_default_ {state} _holo_dark.9.png 및 btn_default_ {state} _holo_light.9.png이 찾고있는 도구라고 생각되지만 긍정적이지는 않습니다. 일반적으로 플랫폼 리소스에서 res/values / themes.xml 및 res/values / styles.xml을보고 정확히 무엇을 찾고 있는지 파악해야합니다. – Karakuri
또한 내 대답은 왜 downvoted입니까? – Karakuri