2011-05-15 48 views
0

我想把一個ShapeDrawable對象放在TableLayout單元格內。正如文件here建議我創建一個自定義視圖mCustomView,然後通過做ShapeDrawable和TableLayout

mRow.addView(mCustomView) 
mTableLayout.addView(mRow) 

一切都添加視圖到TableLayout工作正常,沒有錯誤,但不會顯示在所有的形狀。

代碼來創建我的繪製是

icon = new ShapeDrawable(new ArcShape(0, 360)); 
icon.setBounds(0, 0, 20, 20); 
icon.getPaint().setColor(parseColor); 

回答

1

一些更多的挖掘後和研究事實證明,最好的solution是對ShapeDrawable對象傳遞給ImageView構造函數,然後這個視圖添加到錶行像這樣的東西

ShapeDrawable icon = new ShapeDrawable(new ArcShape(0, 360)); 
icon.getPaint().setColor(parseColor); 
icon.setIntrinsicHeight(30); 
icon.setIntrinsicWidth(30); 
ImageView iv = new ImageView(this); 
iv.setImageDrawable(icon); 
mRow.addView(iv); 
mTableLayout.addView(mRow) 

此解決方案還有擺脫自定義視圖類的優勢。