Java (Android): ¿Cómo escalar un drawable sin Bitmap?

Necesito escalar la imagen de fondo de un botón pero no puedo convertirlo en un mapa de bits. Aquí está el código en este momento:

int height = 50; int width = 80; Button b = new Button (this); b. setBackgroundResource(R.drawable.btn); 

Ahora tengo que escalar "R.drawable.btn" de acuerdo con la "altura" y "ancho". El setBackgroundResource no aceptará un mapa de bits. ¿Cómo puedo hacer eso?

Gracias.

Puede permitir que los parámetros de diseño controlen la escala o puede escalar la imagen usted mismo.

Permitir que el diseño de escala de la imagen:

 b.setBackground(getResources().getDrawable(R.drawable.btn)); 

Escala la imagen manualmente:

 Bitmap original = BitmapFactory.decodeResource(context.getResources(), R.drawable.btn); Bitmap b = Bitmap.createScaledBitmap(original, width, height, false); Drawable d = new BitmapDrawable(context.getResources(), b); button.setBackground(d); 

Advertencia : Es posible que la imagen no aparezca en la pantalla escalada exactamente como se espera. Esto se debe a que dependiendo de los parámetros de diseño de su Button , Android también puede escalar la imagen en función de la densidad de pantalla de hardware de su dispositivo.

Esto convertirá un mapa de bits en un dibujable

 image = new BitmapDrawable(getResources(),MenuScreen.image1); 

Imagen es el dibujable y image1 es el mapa de bits

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.