方法
public void setPadding (int left, int top, int right, int bottom)
someview.setPadding(1,1,1,1);
这将使每边填充1px。我怎么能给1dip而不是1px?
左,右上和下的值以像素为单位,如何在代码中以编程方式给出值?
由于
答案 0 :(得分:20)
使用以下代码从dp
中获取给定值的像素。
Resources res = getResources();
float value = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, valueInDP, res.getDisplayMetrics());
其中valueInDP是dp中的值,这将根据屏幕密度返回相应的像素值。
或者你可以使用以下 -
float value = valueInDP * getResources().getDisplayMetrics().density;
答案 1 :(得分:2)
What is the difference between "px", "dp", "dip" and "sp" on Android?
float scale = context.getResources().getDisplayMetrics().density;
int dpAsPixels = (int) (your_dp_goes_here * scale + 0.5f);
view.setPadding(dpAsPixels , dpAsPixels , dpAsPixels , dpAsPixels );
view.setPaddingRelative(dpAsPixels , dpAsPixels , dpAsPixels , dpAsPixels );
答案 2 :(得分:0)
getListView().setPadding(50,50,50,50);