XMLのdrawableRightセットについて知っています。しかし、それはいくつかの条件ごとに変更されるため、プログラムで行う必要がありました。
以下の機能を使用できます。
editText.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.drawableRight, 0);
描画可能な場所に対応するパラメータの順序は、左、上、右、下です。
さらに探す こちら
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);
試してください:
EditText editFirstname = (EditText) findViewById(R.id.edit_fname);
Drawable icUser = getResources().getDrawable(R.drawable.ic_user);
editFirstname.setCompoundDrawablesWithIntrinsicBounds(null, null, icUser, null);
次に、その特定のドロウアブルにタッチリスナーを追加できます。
int img = R.drawable.smiley;
editText.setCompoundDrawables( null, null, img, null );
説明 ここ
setCompoundDrawablesWithIntrinsicBounds (int left, int top, int right, int bottom)
Drawable(存在する場合)をテキストの左、上、右、下に表示するように設定します。そこにDrawableが必要ない場合は0を使用します。 Drawableの境界は、固有の境界に設定されます。
一度に左右両方を変更するには、この単一行を使用します。
download.setCompoundDrawablesWithIntrinsicBounds( R.drawable.ic_lock_open_white_24dp, 0, R.drawable.ic_lock_open_white_24dp, 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);
Androidグラフィックドローアブルが必要な場合、これは動作します
Drawable dw = getApplicationContext().getResources().getDrawable(R.drawable.edit);
Button start = (Button)findViewById(R.id.buttonStart);
start.setCompoundDrawablesWithIntrinsicBounds(dw, null, null, null);