0

次のような android attrs.xml (data/res/values/attrs.xml) で宣言されたディメンション定数が表示されます。

<attr name="padding" format="dimension" />
<!-- Sets the padding, in pixels, of the left edge; see {@link android.R.attr#padding}. -->
<attr name="paddingLeft" format="dimension" />
<!-- Sets the padding, in pixels, of the top edge; see {@link android.R.attr#padding}. -->
<attr name="paddingTop" format="dimension" />
<!-- Sets the padding, in pixels, of the right edge; see {@link android.R.attr#padding}. -->
<attr name="paddingRight" format="dimension" />

私が正しければ、値は ./data/res/values/styles.xmlas <item name="android:paddingLeft">20dp</item>などで定義されています。

これらはある種の「優先」ディメンション値ですか。これらの値はリリース間で比較的安定しているので、これらの定数を直接使用しても外観に影響はありません。

ありがとう。

編集:

少し明確にするために、ビューレイアウトでこれらの「Android」定義の値を使用することの意味を疑問に思っていました。

<TextView android:text="@string/text"
    android:layout_width="wrap_content"
    android:layout_height="?android:attr/listPreferredItemHeightSmall"
    android:paddingStart="?android:attr/expandableListPreferredItemPaddingLeft"/>

これらの値を定義する代わりに、android 名前空間で参照しています。そうしても安全ですか?

4

2 に答える 2

2

Drawables異なる接尾辞で作成できるように、接尾辞を使用すると、次のような異なる接尾辞でディレクトリLayoutsを作成できますvalues

values
values-large "or" values-sw600dp
values-xlarge "or" values-sw720dp

これで、定数を作成できます。これは、動的レイアウトを作成する際に役立ちます。

通常の画面とタブレットのレイアウトを作成する必要があるとします。どちらも異なる間隔が必要です。それで、あなたは何をしますか?2 つの異なるレイアウトを作成しますか? valuesまたは単にディレクトリに 2 つのエントリを追加しますか?

答えはvaluesディレクトリです。その効率的です。

編集

レイアウト.xml

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="@dimen/margin_left">

margin_leftそして、内部valuesvalues-sw600dpディレクトリを次のように定義しました

<dimen name="margin_left">20dp</dimen>

<dimen name="margin_left">40dp</dimen>

それぞれ。layoutこれにより、効率的なハンドリングを作成するためのより多くのアイデアが得られます。

于 2013-02-12T06:44:50.257 に答える
0

質問を正しく理解しているかどうかはわかりませんが、ピクセル単位の生の値の代わりに dp、dip、sp などの独立した単位を使用すると、異なるデバイスでも同じように見えます。ここでそれについて読むことができます:http://developer.android.com/guide/practices/screens_support.html

于 2013-02-12T06:42:24.967 に答える