Calcular el tamaño de la imagen cuando se utiliza setCompoundDrawables para EditText

Cuando estoy agregar icono como a continuación:

etComment = (EditText) findViewById(R.id.et_comment); Drawable img = getResources().getDrawable( R.drawable.warning ); etComment.setCompoundDrawablesWithIntrinsicBounds( img, null, null, null ); 

Introduzca aquí la descripción de la imagenIntroduzca aquí la descripción de la imagen

El icono cambia el tamaño de EditText. ¿Cómo puedo calcular el tamaño img y ponerlo en EditText sin EditText redimensionar?

¡Gracias!


FunkTheMonk
Utilice setCompounDrawables () en lugar de setCompoundDrawablesWithIntrinsicBounds () – tendrá que establecer los límites de los drawables manualmente.

No entiendo cómo calcular los límites manualmente. Tengo la altura y el ancho de EditText:

 etComment = (EditText) findViewById(R.id.et_comment); Drawable img = getResources().getDrawable( R.drawable.warning ); int size = etComment.getHeight(); img.setBounds(0, 0, size, size); etComment.setCompoundDrawables( img, null, null, null ); 

Pero tengo diferentes resultados en diferentes tamaños de pantalla. ¿Cómo puedo calcular el tamaño correcto y el relleno del icono? ¿Me podría ayudar?

Creo que puede utilizar diferentes tamaños de imágenes para diferentes pantallas y utilizar getMinimumWidth para establecer Bounds.But no lo probé antes, puede ser que no es apropiado para .9 parche.

Cuando utiliza setCompoundDrawables, necesita código como:

 Drawable img; Resources res = getResources(); img = res.getDrawable(R.drawable.btn_img); //You need to setBounds before setCompoundDrawables , or it couldn't display img.setBounds(0, 0, img.getMinimumWidth(), img.getMinimumHeight()); btn.setCompoundDrawables(img_off, null, null, null); 

Utilice setCompoundDrawables () en lugar de setCompoundDrawablesWithIntrinsicBounds () – tendrá que establecer los límites de los drawables manualmente.

He encontrado la solución en este post.

 Drawable dr = this.getResources().getDrawable(R.drawable.warning); Bitmap bitmap = ((BitmapDrawable) dr).getBitmap(); Drawable d = new BitmapDrawable(this.getResources(), Bitmap.createScaledBitmap(bitmap, 35, 35, true)); txtValue.setCompoundDrawablesWithIntrinsicBounds(d, null, null, null); 

HTH, Milton

  • Cómo comprobar NULL en etiquetas XML XML analizadas
  • Cierre del cursor en onPostExecute no produce nada
  • GetMeasuredHeight () y el ancho que devuelve 0 después de measure ()
  • Android: dither = "true" no dither, lo que está mal?
  • Inflar diseño de forma programática en otro diseño
  • ¿Cómo quitar la pantalla blanca mientras se carga la aplicación de Android?
  • Cómo escalar la imagen en Android CollapsingToolbarLayout como WunderList hace
  • Obtención de un usuario String en un cuadro de diálogo emergente
  • Comparación de componentes de la interfaz de usuario de Android y iPhone
  • Fuente para CollapsingToolbarLayout
  • Disposición / control de Android para mostrar "flecha" de la pestaña abierta a la lista / menú?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.