2013-08-13 10 views
1

선형 그라디언트가 90 도인 Android 버튼이 필요합니다. 버튼이 state_pressed이면 그라데이션이 -90 도로 전환되어 더 대화식으로 보이게합니다.android는 동적 상태 목록 드로어 블을 만듭니다.

현재 구현에서는 레이아웃 XML 파일, 두 가지 모양의 드로어 블 파일 및 상태 목록 드로어 블 파일이 필요합니다.

상태 목록 drawable에는 두 개의 shape drawable 파일이 포함되어 있으며 layout xml에는 src 또는 background를 state-list drawable에 설정하는 버튼이 있습니다.

셰이프 드로어 블 파일의 그라디언트에 수동으로 두 가지 색을 입력하는 대신 색을 구성하는 것이 문제입니다. 하나의 색을 사용하는 단추 개체를 갖고 싶습니다. 그래디언트의 다른 끝은 선형 그래디언트의 각도를 설정하고 그 그래디언트의 여러 상태를 만듭니다.

가 어떤 XML 파일 혼란되지 않습니다 내가 어떤 경우에는 내 colors.xml 파일

에서, 단 하나의 색으로 전달할 수있는이 방법은,이,이 안드로이드 프로젝트에 생산 ​​보탬이 될 것입니다 객체는 또한 안드로이드 애플 리케이션 UI/UX의 미학을 증가시킬 것입니다

답변

3

이것은 대답하는 큰 질문입니다. 우리가 비슷한 것을 한 곳의 링크를 지적 해 줄 수 있습니다. https://hg.mozilla.org/mozilla-central/file/ba6c02fc1fe6/mobile/android/base/ShapedButton.java#l107은 즉석에서 StateListDrawable을 만드는 방법을 보여줍니다. https://sriramramani.wordpress.com/2012/07/22/oh-my-textviews/

+0

그래, 이것은 정말 멋진'108 stateList.addState (새 INT [] {android.R.attr.state_pressed}, 새로운 ColorDrawable (자원이다 : 여기

은 하나의 당김 파일에 필터를 적용하는 방법 .getColor (R.color.highlight_shaped)))); stateList.addState (new int [] android.R.attr.state_focused}, 새 ColorDrawable (리소스 .getColor (R.color.highlight_shaped_focused))); ' – CQM