実際には「パディングの相対的なサイズ」ではありませんが、私は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ているときは、APIレベル、画面サイズ、ランドスケープ対肖像画、上記の組み合わせ「と、より」でvalues-FOO
をターゲットにすることができます。
出典
2014-04-23 09:17:05
jpw
もう少し具体的にする必要があります。マージン、パディングおよびウェイトはすべて、非常に異なる目標を持っています。ウェイトはビューの幅や高さを設定しますが、マージンは設定しません。埋め込みはウィジェット/ビュー自体の*内部*のため、これはさらにweight属性からのものです。 –
@StefandeBruijnポイントを取って、質問を改訂しました。 – George
あなたはDP(i)が妥当ではないと言っています、なぜ正確にはそうではありませんか?それらはハードコーディングされたピクセルではありません。それらは1インチあたりのドット数です。彼らはあなたが望むものをまさにやるでしょう。 8dpi(Googleの推奨マージン)は、高解像度の画面では低解像度の画面よりも多くのピクセルになります。 –