두 개의 상태 (정상 및 누름)로 이미지가있는 ImageButton을 생성하려고합니다. 주정부는 동일한 이미지를 사용하지만 눌린 상태에서는 더 가볍습니다. 두 이미지없이 XML 만 사용 할 수 있습니까?다른 버튼 상태에 대해 하나의 이미지 사용
답변
는 내가 만족하는 솔루션을 발견 :
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/my_image" android:state_pressed="false"/>
<item android:drawable="@drawable/my_image_pressed" android:state_pressed="true"/>
</selector>
버튼 배경에 나는이 드로어 블을 넣어 어디 my_image
자원에서 이미지와 다음 my_image_pressed
당김 :
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<bitmap android:src="@drawable/my_image" />
</item>
<item>
<color android:color="#5FEC" />
</item>
</layer-list>
하지만 왜 두 개의 서로 다른 이미지를 사용하고 싶지 않으십니까?
내가 가지고있는 경우 많은 버튼을 누르면 이미지가 커지게됩니다. – anber
버튼에 이미지와 색상 조합을 사용할 수 없습니다. – Chakravyooh
9- 패치 이미지를 만들어 단추 이미지의 파일 크기를 줄일 수 있습니다. 또한 버튼에는 보통 5 가지 상태 (normal, focused, pressed, disabled_focused 및 disabled)가 있어야하므로 글 머리 기호를 물고 많은 자원을 기대할 수 있습니다. 합리적으로 가능한 한 작게 만들 것이고, 디자인 제약 조건에 따라 필요한 다른 버튼의 수를 통합 할 수 있는지 확인하십시오. – Karakuri
것은이 작업을 수행 : 당신의 onDraw에서하여 ImageButton의 이미지에 ColorFilter을 적용 할 수 있습니다
android:background="@drawable/selector"
:하여 ImageButton에 그릴 수 폴더에있는 XML 파일의 이름 selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- When selected, use grey -->
<item android:drawable="@drawable/lighter_image"
android:state_pressed="true" />
<!-- When not selected, use white-->
<item android:drawable="@drawable/original_image"/>
</selector>
을 만들이 XML로 배경을 설정 상태가 눌려지면 그리고 그것이 눌려지지 않을 때 그것을 깨끗하게하십시오.
filter = new PorterDuffColorFilter(0x7FFFFFFF, PorterDuff.Mode.SRC_ATOP);
@Override
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
if (isPressed())
{
getDrawable().setColorFilter(filter);
}
else
{
getDrawable().clearColorFilter();
}
}
흥미 롭습니다. 시도 할 것입니다. –
- 1. Android : 탭 표시기 상태에 대해 다른보기 사용
- 2. Gridview에서 이미지 버튼 사용 및 사용 안함
- 3. jqGrid : 로그인 상태에 따라 다른 탐색기 버튼
- 4. 각 상태에 대해 하나의 명령 또는 모두를 명령하는 명령
- 5. 두보기 모델 간의 통신 : 하나의 내용은 다른 상태에 따라 달라집니다.
- 6. 비표준 버튼 배경 이미지 사용
- 7. 하나의 테이블에 대해 다른 모델
- 8. WPF 하나의 요소에 대해 하나의 리소스가 필요합니까?
- 9. 다른 단추 상태에 대한 다른 글꼴
- 10. Android : 애플리케이션 상태에 대해 혼동이 있음
- 11. 서로 다른 이미지 크기에서 테두리 이미지 사용
- 12. 하나의 이미지 CSS 아래 다른 이미지
- 13. Android 이미지 버튼 페이드 이미지
- 14. 여러 개의 버튼에 대해 Android에서 하나의 OnClick 메서드를 사용 하시겠습니까?
- 15. 다른 설명 문구에 대해 iPhone이 다른 이미지
- 16. 목록보기 구현 하나의 텍스트, 하나의 이미지 및 라디오 버튼
- 17. State Machine - 상태에 대해 열거 형을 선택합니까?
- 18. 두 개의 동작에 하나의 버튼 사용
- 19. TinyMCE 플러그인의 기본 이미지 버튼 사용
- 20. Magento에서 여러 항목에 대해 하나의 재고 사용
- 21. 다른 레이아웃에 대해 다른 CSS 사용
- 22. 자바 스크립트를 사용하여 라디오 버튼 상태에 액세스
- 23. 하나의 버튼을 누른 후에 다른 버튼 차단
- 24. 하나의 활동에서 다른 활동으로 이미지 전달하기
- 25. 바인딩 버튼 경로 이미지 (MvxBaseAndroidTargetBinding 사용)
- 26. rvm이 달린 다른 루비에 대해 하나의 신
- 27. 다른 응용 프로그램에 대해 하나의 인증
- 28. Android - 이미지가있는 버튼 - 버튼 사용 중지시 희미한 이미지
- 29. 레일 라디오 버튼 - 모델의 여러 열에 대해 하나의 선택
- 30. 이미지 이미지 확대 버튼
이상적인 솔루션이 아닙니다. 이는 이미지의 크기에 따라 다릅니다. 그것이 둥근면,이 솔루션은 나쁜 것입니다. –
고마워 친구 내가 버튼을 셀렉터에 설정된 단일 이미지에 대한이 솔루션을 가지고 :) –