2010-06-08 64 views
16

我正在尋找一種簡單的方法讓用戶查看他們爲BAC計算器準備了多少飲料。如何在現有佈局內的Java代碼中創建ImageView?

圖片的應用程式:

PICTURE OF THE APP

在按鈕按下,我想的圖像被添加到屏幕上,直接在旋轉器和用左對齊。當我再次按下按鈕時,我想要將另一個圖像添加到屏幕上。

所以,如果我按下添加啤酒按鈕,一個可繪製的啤酒會出現在微調下面。如果我再次按下添加啤酒按鈕,我想要在那裏有兩個可調節的啤酒,最好是從右側添加啤酒。

(同樣,讓他們達到他們的寬度限制,纏繞,並在左邊重新開始,而是一個完整的線下方,將是真棒)

我無法弄清楚如何做到這一點。我認爲在代碼中添加一個ImageView到一個相對佈局(因爲它需要被定位在右邊)是最好的路線,但是如果在xml中可能的話,我會非常樂意使用它。任何幫助?

回答

39

在按鈕的單擊回調中,創建一個ImageView對象,設置瓶子圖像並對其進行定位。例如(我假設你的元素的名稱):

ImageView iv = new ImageView(this); 
iv.setImageResource(R.drawable.beerbottle); 
RelativeLayout rl = (RelativeLayout) findViewById(R.id.RelativeLayout01); 
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
    RelativeLayout.LayoutParams.WRAP_CONTENT, 
    RelativeLayout.LayoutParams.WRAP_CONTENT); 
lp.addRule(RelativeLayout.BELOW, R.id.ButtonRecalculate); 
lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
rl.addView(iv, lp); 

我沒有測試過這一點,你要知道,但它應該給你一個良好的開端。您可能需要將其他參數添加到ImageView,並可能添加到LayoutParams以使其看起來不錯,並追蹤顯示多少瓶等等。

+0

啊!幾乎!只有最上面的一行「ImageView iv = new ImageView(this);」拋出異常「構造函數ImageView()未定義。」 – 2010-06-08 17:54:38

+0

我可以將「this」替換爲「null」,它會運行但不會顯示圖片... – 2010-06-08 18:32:38

+0

啊,是的,它在回調中,所以它缺少適當的上下文。將「this」替換爲「ParentActivity.this」,其中ParentActivity是您設置偵聽器的Activity類。 – 2010-06-08 19:56:59