2017-09-04 12 views
2

私はTextInput Layoutを使用してテキストの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);