1

I 버튼에 약간의 클릭 효과를 추가하려면, 그래서 드로어 블 b1.xml을 정의다른 색상 버튼에 대해 하나의 드로어 블 선택기를 정의 할 수 있습니까?

<?xml version="1.0" encoding="utf-8"?> 

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" > 
     <shape> 
      <solid 
       android:color="#cf00" /> 
     </shape> 
    </item> 
    <item> 
     <shape> 
      <solid 
       android:color="#f00" /> 
     </shape> 
    </item> 
</selector> 

그리고는 나는 버튼 배경

<Button 
     android:id="@+id/main_btn" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="btn" 
     android:background="@drawable/b1" 
     android:textColor="#fff" 
     android:textSize="15sp" 
     android:layout_marginLeft="20dp" 
     android:layout_marginRight="20dp" 
     android:padding="10dp" 
     android:gravity="center" 
     /> 

이 적용 그러나 20 위에 다른 색상의 버튼이 있습니다 앱에서 각 버튼에 드로어 블을 많이 생성하고 싶지는 않습니다. 백그라운드에서 드로어 블을 사용하는 경우 해당 버튼에 배경색을 설정할 수 없습니다. 배경색을 사용하는 경우 드로어 블을 해당 버튼으로 설정할 수 없습니다.

드로어 블을 정의 할 수 있습니까? 버튼을 눌렀을 때 버튼에 투명을 추가하십시오. 동시에, 각 버튼마다 다른 색상을 정의 할 수 있습니다.

답변

0

모든 버튼에 기본/집중 색상이 동일하고 "누른 상태"만 다를 것이라고 가정하면 앱의 테마를 변경할 수 있습니다.

그렇지 않으면 선택기는 각 색상/투명도 옵션을 정의하는 방법입니다. 그룹이나 셀렉터 배열을 사용하는 "바로 가기"는 없습니다.

0

누르는 색상의 알파를 관리하는 방법 때문에 옵션이 제한됩니다. 그것은 같은 색이지만 배경색을 섞을 수있는 약간의 투명도가 있습니다. 풀 컬러 이미지가 아래에 있다면 그럴만 한 이유가 될 것입니다. 20 가지 버튼 색상으로, 그 경우를보기가 어렵습니다.

단색 배경을 사용하는 경우 각 버튼을 FrameLayout에 래핑 할 수 있습니다. 각 프레임 레이아웃의 배경색을 버튼 색상으로 설정하십시오. # 3xxx (xxx = bg 색)를 사용하도록 버튼 드로어 블을 설정하십시오. # 3xxx 배경에 단추를 블렌딩하는 것은 배경색 (# F-3 = C = 16 진수)에 단추 색상의 #C___을 혼합하는 것과 같습니다. button drawable의 일반 상태를 투명하게 설정합니다 (@android : color/transparent). 버튼의 전체 색상을 표시 할 수 있습니다.