gpt4 book ai didi

带有边距和填充的 Android 权重

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:44:46 27 4
gpt4 key购买 nike

我需要能够使用填充的相对大小 - 根据设备的分辨率和 dpi 变大或变小。

例如,如果我的 View 宽度为 100 像素,我希望左侧填充 10 像素,右侧填充 10 像素。但是,如果它在更高密度的屏幕上运行,比如 250 像素,我需要左右填充各为 25 像素。

硬编码像素或 dp 似乎不合理,而且如果可以的话,我更愿意避免代码隐藏缩放逻辑。我也不想使用任何额外的加权空 View 来获得相同的效果。不确定我如何用它模拟填充。

有没有办法从 xml 中做到这一点?或者我是否必须根据背后代码的设备分辨率/dpi 来缩放它们?

最佳答案

这并不是真正的“填充的相对大小”,但我认为使用 Android dimension value defined in XML会做你想做的。很难从你的问题中猜测,因为你想避免“硬编码像素”,但也“从 xml 执行此操作”;)

上面的链接给出了这个例子;

<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="textview_height">25dp</dimen>
<dimen name="textview_width">150dp</dimen>
<dimen name="ball_radius">30dp</dimen>
<dimen name="font_size">16sp</dimen>
</resources>

然后;

<TextView
android:layout_height="@dimen/textview_height"
android:layout_width="@dimen/textview_width"
android:textSize="@dimen/font_size"/>

Android SDK 本身使用这种方法;

例如values/dimens.xml

<resources>

<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>

</resources>

values-sw600dp/dimens.xml

<resources>

<!--
Customize dimensions originally defined in res/values/dimens.xml (such as
screen margins) for sw600dp devices (e.g. 7" tablets) here.
-->

</resources>

当您是 providing resources 时,您可以将 values-FOO 定位到 API 级别、屏幕尺寸、纵向与横向、上述“以及更多”的组合通过使用“配置限定符名称”。

关于带有边距和填充的 Android 权重,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15433951/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com