XMLでのdrawableRightの設定について知っています。しかし、条件によって変更されるため、プログラムで行う必要がありました。
XMLでのdrawableRightの設定について知っています。しかし、条件によって変更されるため、プログラムで行う必要がありました。
回答:
以下の機能を使用できます。
editText.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.drawableRight, 0);
または(IDの代わりにドローアブル自体を渡したい場合)
editText.setCompoundDrawablesWithIntrinsicBounds(null, null, ContextCompat.getDrawable(context,R.drawable.drawableRight), null)
ドローアブルの場所に対応するパラメータの順序は、左、上、右、下です。
ここでさらに見つける
EditText myEdit = (EditText) findViewById(R.id.myEdit);
myEdit.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.icon, 0);
// where params are (left,top,right,bottom)
プログラムでドローアブルパディングを設定することもできます。
myEdit.setCompoundDrawablePadding("Padding value");
以下のようにしてみてください:
Drawable img = getContext().getResources().getDrawable( R.drawable.smiley );
EdtText.setCompoundDrawablesWithIntrinsicBounds( 0, 0, img, 0);
編集:
int img = R.drawable.smiley;
EdtText.setCompoundDrawablesWithIntrinsicBounds( 0, 0, img, 0);
関数setCompoundDrawablesWithIntrinsicBounds()に組み込まれているeditTextビュー(ここではtxview)を使用して、探していることを実行できます。
私のコードでは、このように使用しました。txview.setCompoundDrawablesWithIntrinsicBounds(0,0、R.drawable.ic_arrow_drop_up、0);
txview.setCompoundDrawablesWithIntrinsicBounds(left,top,right,bottom);
et_feedback.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
}
et_feedback.setCompoundDrawablesWithIntrinsicBounds(0,R.mipmap.feedback_new, 0, 0);
et_feedback.setTextColor(Color.BLACK);
}
});
これを使用してDrawableを非表示にします
et_feedback.setCompoundDrawablesWithIntrinsicBounds(0,0, 0, 0);