我读过:
How to set margin of ImageView using code, not xml
以及要使用的注释“您可以使用context.getResources()来扩展px值.getDisplayMetrics()。density”
事情是,我有比例表示颜色的某些值,需要将光标指向某个值。
由于所有内容都以“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);
TNX。
答案 0 :(得分: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);