1

我读了:

如何使用代码而不是 xml 设置 ImageView 的边距

以及使用“您可以使用 context.getResources().getDisplayMetrics().density 缩放 px 值”的评论

问题是,我有比例表示颜色中的一些值,并且需要将光标指向某个值。

由于所有内容都计入“dip”,我如何在语法上发送 dip,而不是 px?

例如:

0____T_h_i_s__i_s___m_y___s_c_a_l_e_____________300dp

        ^  - My cursor pointing to 100dp (LeftMargin = 100dp)

我正在使用这行代码进行设置:

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(leftMargin, 0, 0, 0);
BMIcursor.setLayoutParams(lp);
4

1 回答 1

4

以像素为单位的左边距可以这样计算:

leftMarginPx = leftMarginDp * context.getResources().getDisplayMetrics().density;

所以用你的代码:

    leftMarginDp = 100 // 100dp;
    leftMargin = leftMarginDp * context.getResources().getDisplayMetrics().density;
    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    lp.setMargins(leftMargin, 0, 0, 0);
    BMIcursor.setLayoutParams(lp);
于 2012-09-10T12:28:35.433 回答