2012-07-04 11 views
8

Tengo varios encastillables y quiero combinarlo con uno dibujable (por ejemplo, 4 cuadrados para crear un cuadrado grande, como el logotipo de Windows :)). ¿Cómo puedo hacer esto?Combinar múltiples encastillables

+1

Aquí está la Guía del desarrollador en [Drawable Resources] (http://developer.android.com/guide/topics/resources/drawable-resource.html). Discute esto es un gran detalle con imágenes y código ejecutable. – Sam

Respuesta

14

Puede hacerlo utilizando TableLayout o algunos LinearLayout s. Sin embargo, si lo que desea es crear una sola imagen para usar dentro de un ImageView, deberá crear un Bitmap manualmente; no es difícil:

Bitmap square1 = BitmapFactory.decodeResource(getResources(), R.drawable.square1); 
Bitmap square2 = BitmapFactory.decodeResource(getResources(), R.drawable.square2); 
Bitmap square3 = BitmapFactory.decodeResource(getResources(), R.drawable.square3); 
Bitmap square4 = BitmapFactory.decodeResource(getResources(), R.drawable.square4); 

Bitmap big = Bitmap.createBitmap(square1.getWidth() * 2, square1.getHeight() * 2, Bitmap.Config.ARGB_8888); 
Canvas canvas = new Canvas(big); 
canvas.drawBitmap(square1, 0, 0, null); 
canvas.drawBitmap(square2, square1.getWidth(), 0, null); 
canvas.drawBitmap(square3, 0, square1.getHeight(), null); 
canvas.drawBitmap(square4, square1.getWidth(), square1.getHeight(), null); 

Ni siquiera he compilado el código anterior; Solo te estoy mostrando cómo se puede hacer. También estoy asumiendo que tienes drawables cuadrados todos con las mismas dimensiones. Tenga en cuenta que el mapa de bits llamado big se puede usar donde quiera (por ejemplo, ImageView.setImageBitmap()).

+0

Gracias, y ¿cómo puedo crear el dibujable con este lienzo? – arts777

+0

¿Qué quieres decir con drawable? ¿Una instancia de clase 'Drawable'? Si es así, puede usar 'BitmapDrawable'. Por favor trata de ser más específico. – Cristian

+0

Lo siento, por supuesto clase Drawable. 4 entradas extraíbles y una salida. – arts777

Cuestiones relacionadas