버튼 대신 사용하는 사용자 정의 드로어 블이 있습니다. 예를 들어 camButton
은 기본 카메라를 열어 사용자가 사진을 찍을 수 있도록합니다.입력을 기준으로 프로그래밍 방식으로 드로어 블 상태를 설정하는 중
camButton
에는 자원이 제공되어 드로어 블이 흰색 또는 녹색이 될 수 있습니다. 이것은 camButton
이 어떻게 동작해야하는지입니다.
1) 기본값 인 no-input 상태는 흰색입니다.
2) 입력 상태가 녹색입니다. 즉 사용자가 사진을 찍었지만 삭제하지 않은 경우 드로어 블은 녹색으로 표시됩니다.
3) 버튼이 흰색 일 때 버튼을 누르면 버튼을 놓을 때까지 녹색으로 바뀌어야합니다.
4) 녹색 일 때 버튼을 누르면 아무런 효과가 없습니다.
다음은 이와 비슷한 것을 테스트하기 위해 selector
입니다. 그러나이 선택기는 버튼을 눌렀을 때 버튼의 색상 만 변경합니다. 위의 # 1 및 # 3은 처리하지만 # 2 또는 # 4는 처리하지 않습니다.
cam_selector.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- green --> <item android:drawable="@drawable/cam_pressed" android:state_pressed="true"/>
<!-- green --> <item android:drawable="@drawable/cam_pressed" android:state_long_pressable="true"/>
<!-- white --> <item android:drawable="@drawable/cam_normal"/>
</selector>
이 셀렉터가 내 주요 레이아웃으로 구현되는 방법입니다
이<Button
android:id="@+id/camButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@drawable/cam_selector"/>
내 응용 프로그램에서 나는 논리 값을 사용하여 제공 입력이 있는지 테스트합니다.
질문 : 코드 (또는 다른 방법)의 불리언 값을 기준으로 camButton
의 상태를 @drawable/cam_pressed
으로 설정하려면 어떻게해야합니까?
불명확하거나 추가 정보가 필요한 경우 알려주십시오. 모든 조언을 부탁드립니다. 감사!