[英]Programmatically set view width
我正在開發一個Android應用程序。 屏幕上隨時顯示六個主要的long
變量。 使用單獨線程上的計時器,這些值將連續遞增。 用戶可以在屏幕上觀看這些變量的增加。 這些變量中的每一個都有一個最大值。
我想為每個變量繪制一個“進度條”。 目前,我正在使用純紅色的View
。
請參見下面的原型:
左側的紅色橫條表示已達到最大數量的變量,而其他橫條為空,且橫條的寬度為0,因此是不可見的。 每個變量都放置在RelativeLayout
(代表一個“節”)中,然后再放置在LinearLayout
。 在將來,我可能需要添加/刪除一些內容-因此解決方案無需依賴於硬編碼的布局位置。
我的問題是,如何在代碼中以編程方式設置這些“進度條”的寬度,而又不對任何變量的布局坐標進行硬編碼?
您應該檢查http://developer.android.com/reference/android/widget/ProgressBar.html ProgressBar。 這將使您輕松顯示進度。
對於LinearLayout
(以及與此相關的任何ViewGroup
),您可以以編程方式生成自己的LayoutParams
:
LayoutParams params = new LayoutParams(width,height) // in px
yourLinearLayout.setLayoutParams(params);
您將需要將LayoutParams強制轉換為相應的ViewGroup
類型。
常規方法是使用ProgressBar
,但是如果要使用自定義視圖,請使用以下方法:
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(withInPx, heightInPx);
yourView.setLayoutParams(lp);
這假定您使用LinearLayout
,但是如果您使用其他布局(即RelativeLayout
),則應進行編輯
heightInPx
將根據您的情況進行固定,但是withInPx
可以根據進度而有所不同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.