2017-09-04 14 views
2

TextInput 레이아웃을 사용하여 텍스트 inout 상자를 만듭니다. 입력 상자의 다양한 변형을 기반으로 드로어 블 및 색상 리소스를 적용하고 싶습니다. res/color 및 res/drawable 디렉토리에서 다른 xml 리소스 파일을 만들었습니다.TextInputLayout에 해당하는 setTextColor

public enum InputTextVariant { 
    Standard, Stepper, MultiLine; 
} 
public void setVariant(int variantParam) { 
     Drawable d; 
     ColorStateList csl; 
     InputTextVariant variant = SpectrumInputTextVariant.values()[variantParam]; 
     switch (variant) { 
      case Standard: 
       csl = AppCompatResources.getColorStateList(getContext(), R.color.textcolor_btn_cta); 
       d = AppCompatResources.getDrawable(getContext(), R.drawable.btn_cta_material); 
       //setTextColor(csl); 
       setBackgroundTintList(csl); 
       setBackground(d); 

버튼에 setTextColor와 비슷한 것을 사용하고 싶습니다. 나는 다른 상태 (장애인, 공중에 매달린, 집중된 등)에 대해 다른 색과 모양을 지정했습니다. 이 TextInputLayout에 대한 색상 리소스를로드하는 방법은 무엇입니까? API 버전이> 21 이상인 setBackgroundTint를 시도했습니다. 하지만 저 버전에 대해서도 지원해야합니다.

답변

0

당신은 당김 수준에서 색조를 관리 할 수 ​​있습니다

Drawable d = AppCompatResources.getDrawable(...); 
ColorStateList csl = AppCompatResources.getColorStateList(...); 
d = DrawableCompat.wrap(d); 
DrawableCompat.setTintList(csl); 
setBackground(d);