2014-02-06 1 views
-1

Это моя деятельность. Я получаю растровое изображение и создаю несколько растровых изображений и показываю их на одном изображении. i m получение нескольких изображений, но не правильно установленных в представлении изображений, пожалуйста, помогите мне?Невозможно установить несколько растровых изображений в одном представлении изображения

 private Bitmap Final_Murge_Bitmap() 
     { 
     Murge_Bitmap = null; 
     try { 

     Murge_Bitmap = Bitmap.createBitmap(500, 500, Bitmap.Config.ARGB_8888); 
     Canvas c = new Canvas(Murge_Bitmap); 
     c.drawBitmap(Murge_Bitmap, 0, 0, null); 
     Drawable drawable1 = new BitmapDrawable(Bitmap_recieve); 
     Drawable drawable2 = new BitmapDrawable(Bitmap_recieve); 
     Drawable drawable3 = new BitmapDrawable(Bitmap_recieve); 
     Drawable drawable4 = new BitmapDrawable(Bitmap_recieve); 
     Drawable drawable5 = new BitmapDrawable(Bitmap_recieve); 
     Drawable drawable6 = new BitmapDrawable(Bitmap_recieve); 
     Drawable drawable7 = new BitmapDrawable(Bitmap_recieve); 
     Drawable drawable8 = new BitmapDrawable(Bitmap_recieve); 

     drawable1.setBounds(220, 220, 501, 501); 
     drawable2.setBounds(330, 330, 400, 400); 
     drawable3.setBounds(160, 150, 200, 200); 
     drawable4.setBounds(140, 120, 200, 200); 
     drawable5.setBounds(120, 100, 400, 400); 
     drawable6.setBounds(100, 80, 500, 500); 
     drawable7.setBounds(80, 70, 200, 200); 
     drawable8.setBounds(60, 60, 200, 200); 

     drawable1.draw(c); 
     drawable2.draw(c); 
     drawable3.draw(c); 
     drawable4.draw(c); 
     drawable5.draw(c); 
     drawable6.draw(c); 
     drawable7.draw(c); 
     drawable8.draw(c); 

    } catch (Exception e) 
    { 
    } 
    return Murge_Bitmap; 
    }} 
+0

Чего вы хотите достичь? – pskink

+0

Я хочу установить растровое изображение в последовательном формате, например gridview –

+0

Почему вы не используете GridView? –

ответ

1

вы можете сделать что-то вроде следующего:

public Bitmap drawMultipleBitmapsOnImageView(Bitmap b) { 
     Bitmap drawnBitmap = null; 

     try { 
      drawnBitmap = Bitmap.createBitmap(400, 400, Config.ARGB_8888); 

      Canvas canvas = new Canvas(drawnBitmap); 
        // JUST CHANGE TO DIFFERENT Bitmaps and coordinates . 
      canvas.drawBitmap(b, 100, 100, null); 
      canvas.drawBitmap(b, 200, 300, null); 
      canvas.drawBitmap(b, 100, 200, null); 
      canvas.drawBitmap(b, 300, 350, null); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return drawnBitmap; 
    } 

вы вызываете этот метод, как следующее:

ImageView myImageView = (ImageView) findViewById(R.id.myImageView); 
     Bitmap bitmap = ((BitmapDrawable) myImageView.getDrawable()) 
       .getBitmap(); 
     Bitmap b = drawMultipleBitmapsOnImageView(bitmap); 

     myImageView.setImageBitmap(b); 

и, пожалуйста, дайте мне некоторую обратную связь.

Надеюсь, что помогает.

+0

спасибо, что это полезно .. –

+0

его не работает? или нет, чего вы хотите? –

+0

Он работает, и мне нужно масштабировать изображение и сохранять его, но есть некоторые проблемы при масштабировании. Мне нужен код для масштабирования изображения и установки на другое изображение, на самом деле я работаю над приложением для редактирования фотографий. Пожалуйста, дайте мне полный исходный код для редактора фотографий. –

0

Вы можете нарисовать все, как было сказано, или вы можете создать LayerDrawable с этими BitmapDrawables. Это проще и потребляет меньше памяти, поэтому, если вы можете достичь того, чего хотите с этим, сделайте это.

private LayerDrawable createLayerDrawable() { 
     Drawable layers = new Drawable[4]; 
     layers[0] = murge_drawable; // converted from Murge_Bitmap 
     layers[1] = drawable1; 
     layers[2] = drawable2; 
     layers[3] = drawable3; 
     // ... 
     return new LayerDrawable(layers); 
} 

imageview.setImageDrawable(getLayerDrawable());