2010-11-24 7 views
1

오렌지 색상으로 Button의 표준 onClick 색상 (노란색)을 재정의하는 방법을 찾으려고합니다. (이 더 색상이 없는지 내가 본이 질문을 작성하는 동안 ,하지만 이미지)오버 클록 onClick 색상/드로어 블

그렇게 할 수있는 쉬운 방법이 있나요? 아니면 새로운 스타일을 써야합니까?

GIT에서 com.android.internal.R.attr.buttonStyle이 어떻게 보이는지 알았습니다. 그리고 저는 그 버튼 스타일을 복사하고 수정하기를 원합니다. 안드로이드 : 그 방법에 그것을 할 경우에, 나는, 나는 선택의 속성의 xmlns를 작성해야합니다 생각, XML-오류가

<?xml version="1.0" encoding="utf-8"?> 
<selector> 
    <item 
     android:state_window_focused="false" 
     android:state_enabled="true" 
     android:drawable="@drawable/btn_default_normal"/> 
    <item 
     android:state_window_focused="false" 
     android:state_enabled="false" 
     android:drawable="@drawable/btn_default_normal_disable" /> 
    <!-- Modified item --> 
    <item 
     android:state_pressed="true" 
     android:drawable="@drawable/btn_default_selected" /> 
    <item 
     android:state_focused="true" android:state_enabled="true" 
     android:drawable="@drawable/btn_default_selected" /> 
    <item 
     android:state_enabled="true" 
     android:drawable="@drawable/btn_default_normal" /> 
    <item 
     android:state_focused="true" 
     android:drawable="@drawable/btn_default_normal_disable_focused" /> 
    <item 
     android:drawable="@drawable/btn_default_normal_disable" /> 
</selector> 

확인을 얻는다. "http://schemas.android.com/apk/res/android"로 채우면 다른 오류가 발생합니다. 이번에는 안드로이드의 drawable 리소스를 찾을 수 없기 때문에.

의견이 있으십니까?!

뮤르

답변

4

하나에게, 작업 예를 주셔서 감사합니다. 이 xml은 배경 drawable로 설정됩니다. 원하는대로 색상을 조정하십시오.

<?xml version="1.0" encoding="utf-8"?> 
<selector 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_pressed="true" > 
     <shape> 
      <gradient 
       android:startColor="#FFAAAAAA" 
       android:endColor="#FFAAAAAA" 
       android:angle = "180" /> 
      <corners 
       android:radius="10dip" /> 
     </shape> 
    </item> 

    <item android:state_focused="true" > 
     <shape> 
      <gradient 
       android:startColor="#FF888888" 
       android:endColor = "#FF888888" 
       android:angle = "180"/> 
      <corners 
       android:radius="10dip" /> 
     </shape> 
    </item> 

    <item>   
     <shape> 
      <gradient 
       android:startColor="#FFFFFFFF" 
       android:endColor = "#FFFFFFFF" 
       android:angle = "180" /> 
      <corners 
       android:radius="10dip" /> 
     </shape> 
    </item> 
</selector> 

또한 획 (단추 테두리)을 정의 할 수 있습니다.

+0

이것이 해결책이며, 지금 해 드리겠습니다. 고맙습니다. – Tima

1

Mur,이 리소스 (예 : btn_default_normal)를 드로어 블 폴더에 복사 했습니까? 이러한 리소스를 가져와야합니다 (플랫폼/Android-8/data/res/다른 드로어 블 폴더 아래의 sdk 폴더에서 찾을 수 있음). 그런 다음 각 선택기 상태에 필요한 스타일로 수정하십시오.

+0

아니요, 나는 ... 나는 그들에게 접근 할 수있는 방법이 있다고 생각했습니다. 즉, 일부 시스템 레이아웃에 액세스 할 수 있습니다. – Tima

+1

일반적으로 상위 레이아웃에 액세스 할 수는 있지만 해당 파트를 너트 할 수 있습니다. 예를 들어 현재 시스템의 백그라운드 상태 구현에 액세스 할 수 있지만이를 구성하는 각 요소는 아닙니다. 그것들을 사용하고 싶다면 SDK에서 접근 할 수 있으며 프로젝트에 복사 할 수 있습니다. – Thomas

+0

복사 할 크기가 다른 이미지가 너무 많습니다 (http://android.git.kernel.org/?p=platform/frameworks/base.git;a=tree;f=core/res/res/drawable- hdpi; h = 6e54b40a4b136aaa68016fd6ea1da16d9a9f8724; hb = HEAD) – Tima