2012-07-04 19 views
8

Mam wiele rysunków i chcę połączyć je z jednym ciągiem (na przykład 4 kwadraty, aby utworzyć jeden duży kwadrat, np. Logo systemu Windows :)). Jak mogę to zrobić?Połączyć wiele rysunków

+1

Poniżej znajduje się Przewodnik dla programistów na temat [Drawable Resources] (http://developer.android.com/guide/topics/resources/drawable-resource.html). Omawia to bardzo szczegółowo ze zdjęciami i działającym kodem. – Sam

Odpowiedz

14

Możesz to zrobić, używając TableLayout lub niektórych LinearLayout s. Jeśli jednak chcesz utworzyć pojedynczy obraz do użycia w ramach ImageView, musisz ręcznie utworzyć Bitmap; to nie jest trudne:

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

Nie mam nawet skompilować powyższego kodu; Po prostu pokazuję ci, jak można to zrobić. Zakładam też, że masz kwadratowe rysunki o tych samych wymiarach. Zauważ, że bitmapę o nazwie big można używać w dowolnym miejscu (np. ImageView.setImageBitmap()).

+0

Dzięki, i jak utworzyć wyciąg z tego płótna? – arts777

+0

Co masz na myśli przez drawable? Instancja klasy 'Drawable' class? Jeśli tak, możesz użyć 'BitmapDrawable'. Staraj się być bardziej konkretny. – Cristian

+0

Przykro mi, oczywiście klasa do ściągnięcia. 4 wejście Szuflady i jedno wyjście. – arts777

Powiązane problemy