code

Android Edittext에서 프로그래밍 방식으로 drawableRight를 설정하는 방법은 무엇입니까?

codestyles 2020. 11. 6. 08:17
반응형

Android Edittext에서 프로그래밍 방식으로 drawableRight를 설정하는 방법은 무엇입니까?


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);

int img = R.drawable.smiley;
editText.setCompoundDrawables( null, null, img, null );

여기에 설명

setCompoundDrawablesWithIntrinsicBounds (int left, int top, int right, int bottom)

드로어 블 (있는 경우)이 텍스트의 왼쪽, 위, 오른쪽 및 아래에 나타나도록 설정합니다. Drawable을 원하지 않으면 0을 사용하십시오. Drawables의 경계는 고유 경계로 설정됩니다.


시험:

EditText editFirstname = (EditText) findViewById(R.id.edit_fname);
Drawable icUser = getResources().getDrawable(R.drawable.ic_user);
editFirstname.setCompoundDrawablesWithIntrinsicBounds(null, null, icUser, null);

그런 다음 특정 드로어 블에 터치 리스너를 추가 할 수 있습니다.


setCompoundDrawablesWithIntrinsicBounds () 함수에 내장 된 editText 뷰 (여기서는 txview)를 사용하여 원하는 작업을 수행 할 수 있습니다.

내 코드에서 나는 이것을 이렇게 사용했습니다. txview.setCompoundDrawablesWithIntrinsicBounds (0,0, R.drawable.ic_arrow_drop_up, 0);

txview.setCompoundDrawablesWithIntrinsicBounds(left,top,right,bottom);

한 번에 왼쪽과 오른쪽을 모두 변경하려면이 한 줄을 사용합니다.

download.setCompoundDrawablesWithIntrinsicBounds( R.drawable.ic_lock_open_white_24dp, 0, R.drawable.ic_lock_open_white_24dp, 0);

        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);

안드로이드 그래픽 드로어 블이 필요한 경우 작동합니다.

Drawable dw = getApplicationContext().getResources().getDrawable(R.drawable.edit);
Button start = (Button)findViewById(R.id.buttonStart);
start.setCompoundDrawablesWithIntrinsicBounds(dw, null, null, null);

참고 URL : https://stackoverflow.com/questions/22297073/how-to-programmatically-set-drawableright-on-android-edittext

반응형