2016-01-29 100 views
1

我正嘗試使用圖形構建來創建應用程序 - 空場有機會放置道路,建築物等。我使用帶有10 * 20單元格的TableLayout,單擊時使用drawables填充。我怎樣才能從所有的單元格獲得一個完整的圖像作爲一個drawable?將多個圖像合併爲單個圖像

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

相關問題