2012-06-25 44 views
0

我需要一些建議,我必須在應用程序中實現這個設計。這是它應該看起來像(對於圖像的低分辨率抱歉,但這是我現在所有的)。Android用戶界面設計 - 集成它的最佳方式?

User Interface

所以設計的基本思路是這樣的:
我有一個UI組件,在我的情況,我會使用進度(帶有紅色填充)將舉行關於某種信息用戶數據。例如,如果用戶列有歌曲,則進度條的最大值將是所有歌曲的計數,並且進度將由正在播放的曲目設置。如果我有56首歌曲,並且我正在演奏其中的第23首歌曲,則將根據該整數計算進度。並且進度條上方的小點將表示哪些歌曲是我喜歡的還是不喜歡的。例如,如果我正在播放第23首歌曲,並且它在我的收藏夾中,則應該在同一位置上方的進度條上方顯示點。

所以我的問題是,我應該使用什麼UI組件來添加進度條上方的點。我正在考慮RelativeLayout/LinearLayout/FrameLayout,但據我所知,他們沒有我可以做類似的功能:layout.addView(view, x, y);其中xy是座標。或者這是做到這一點的正確方法?也許有更好的方式去做我想達到的事情。使用View的其他​​。

歡迎任何形式的幫助/意見/建議!

在此先感謝!

回答

1
  1. 在Android它是完全不推薦使用特定的值用於定義佈局放置(除非要使用的屏幕測量作爲參考)

  2. 始終使用DP(密度無關的像素)定義間距和位置,如果FILL_PARENT和WRAP_CONTENT不起作用。

在android中有不同種類的佈局,以幫助您根據複雜性和需要遵循上述規則。

你的情況

我建議使用線性佈局,像垂直方向:

<LinearLayout> 
<CustomView/> 
<ProgressBar /> 
</LinearLayout> 

所以自定義視圖將實際擁有的點點滴滴。

因此,您可以使用水平方向爲您的自定義視圖擴展LinearLayout。 有一個稱爲weight的參數,你可以爲它的每個子視圖設置一個參數,它將把孩子的寬度(在你的情況下)設置爲總佈局寬度的特定百分比。

0

你可以使用RelativeLayout來實現你所需要的。通過設置RelativeLayout的上邊距和左邊距,您可以讓您的孩子在佈局中的原點(x,y)處查看algin。

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, 
                     RelativeLayout.LayoutParams.WRAP_CONTENT); 
    params.leftMargin = x; 
    params.topMargin = y; 
    view.setLayoutParams(params);