簡體   English   中英

以編程方式設置視圖寬度

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM