2016-01-29 2 views
1

Я пытаюсь создать приложение с графическим конструированием - пустое поле с возможностью размещения дорог, зданий и т. Д. Я использовал TableLayout с ячейками 10 * 20, которые заполняются ярлыками при нажатии. Как я могу получить целое изображение из всех ячеек как единое целое?Объединение нескольких изображений в одно изображение

ConstructorActivity

Drawable currentDrawable; 

    @OnClick({R.id.road_btn, R.id.build_btn, R.id.road_turn_btn}) 
    void setCurrentView(ConstructorButton view) { 
    currentDrawable = view.getDrawable(); 
    } 

    private void initTable() { 
    for (int row = 0; row <= 10; row++) { 
     TableRow tr = new TableRow(this); 
     for (int column = 0; column <= 20; column++) { 
      final ImageView imageView = new ImageView(this); 
      imageView.setImageResource(R.drawable.ic_grass); 
      imageView.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        imageView.setImageDrawable(currentDrawable); 
       } 
      }); 
      tr.addView(imageView, 60, 60); 
     } 
     tableLayout.addView(tr); 
    } 
} 
+0

Вы можете сделайте это с помощью метода 'getDrawingCache', я думаю, что только видимая часть на экране устройства щелкнула как целое изображение. –

+0

Вы, вероятно, должны изучить использование OpenGL или библиотеку обертки OpenGL, такую ​​как 'libgdx'. –

+0

Попробуйте этот пост, как объединить несколько изображений на одно изображение http://whats-online.info/science-and-tutorials/92/how-to-combine-multiple-images-into-a-single-image-in -android / –

ответ

2

Вы можете получить изображение для зрения иерархии в целом, используя рисунок кэша:

public Bitmap createBitmapFromView(View v) { 
    v.setDrawingCacheEnabled(true); 
    Bitmap bitmap = Bitmap.createBitmap(v.getDrawingCache()); 
    v.setDrawingCacheEnabled(false); 
    return bitmap; 
} 

Bitmap может быть сохранен, или использоваться в BitmapDrawable

Смежные вопросы