簡體   English   中英

如何以編程方式使用“dp”設置邊距?

[英]How Can I Set Margin with 'dp' programmatically?

我正在嘗試以編程方式創建設計。 我正在使用 LayoutParams 獲取詳細信息,並且我想設置 Margin 並且我看到了 ... setMargins(0, 100, 0, 100)但我想使用 'dp' 進行設置,如下所示:

<TextView
          ...
          android:layout_marginLeft="10dp"
          .../>

如何使用 'dp' 設置邊距?

那么你首先要知道父布局,如果它是你需要的 RelativeLayout :

RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(this);

如果它是線性的,請確保將相對替換為線性以獲得正確的布局參數。現在您可以使用:

layoutParams.setMargins(i1,i2,i3,i4);

所有的值都應該以像素為單位,所以如果你需要一個方法,它應該為你將 dp 轉換為 px。然后隨意使用我的:

public int dpToPx(Context context, float dp) {
    return Math.round(dp * getDisplayMetrics(context).density);
}

現在只需將 layoutParams 設置為子視圖:

textView.setLayoutParams(layoutParams);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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