使用带有dip单位而不是px单位的setPadding给出填充

Luk*_*kap 6 layout android padding

方法

public void setPadding (int left, int top, int right, int bottom)

someview.setPadding(1,1,1,1);
Run Code Online (Sandbox Code Playgroud)

这将使每边填充1px.我怎么能给1dip而不是1px?

左边,右上角和下边的值以像素为单位,如何在代码中以编程方式给出值?

谢谢

anu*_*har 21

使用以下代码从中获取给定值的像素dp.

Resources res = getResources();
float value = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, valueInDP, res.getDisplayMetrics());
Run Code Online (Sandbox Code Playgroud)

其中valueInDP是dp中的值,这将根据屏幕密度返回相应的像素值.

或者您可以使用以下 -

float value = valueInDP * getResources().getDisplayMetrics().density;
Run Code Online (Sandbox Code Playgroud)