使用 setPadding 指定内边距,并使用 Dip 单位而不是 px 单位

发布于 2024-12-10 11:36:05 字数 238 浏览 1 评论 0原文

该方法

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

someview.setPadding(1,1,1,1);

将在每边提供 1px 的填充。我怎样才能给出 1dip 而不是 1px ?

左侧、右上角和底部的值以像素为单位,我如何在dip中的代码中以编程方式给出值?

谢谢

The method

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

someview.setPadding(1,1,1,1);

this will give padding with 1px in each side. How can I give 1dip instead of 1px ?

the values fro left , top right and bottom are in pixels , how can I give values programatically in code in dip ?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

送君千里 2024-12-17 11:36:05

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

Resources res = getResources();
float value = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, valueInDP, res.getDisplayMetrics());

其中 valueInDP 是以 dp 为单位的值,这将根据屏幕密度返回相应的像素值。

或者你可以使用以下 -

float value = valueInDP * getResources().getDisplayMetrics().density;

Use following code to get pixels from given value in dp.

Resources res = getResources();
float value = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, valueInDP, res.getDisplayMetrics());

where valueInDP is value in dp and this will return corresponding pixel value according to screen density.

or you can use following -

float value = valueInDP * getResources().getDisplayMetrics().density;
酒解孤独 2024-12-17 11:36:05

“px”、“之间有什么区别Android 上的 dp"、"dip" 和 "sp"?

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 );

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 );
getListView().setPadding(50,50,50,50);
getListView().setPadding(50,50,50,50);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文