6. Разработка приложений для ОС Android. Единицы размерности в среде Android

1) Создать новый проект:


2) Создаем кнопку и заходим в Window - Show View - Other... - General - Properties или ПКМ на кнопке и выбор Show In - Properties
3) Обзор main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Main" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="Button" />

</RelativeLayout>

  • match_parent означает, что соответствовать родителю, т.е. в данном случае соответствовать экрану нашего устройства (на более старых версиях API используется fill_parent).
  • wrap_content означает что размер будет зависеть от содержимого.
  • можно указывать размерность в писелях например, 100px, но этого делать не рекомендуется т.к. кнопка будет выглядеть по-разному в зависимости от экрана устройства. чтобы этого не произошло нужно использовать dip (device independent pixels) или просто dp например 100dp.
  • для текста надо использовать sip (scale independent pixels) или sp, т.к. dip учитывает размеры экрана устройства, но не учитывает пользовательские настройки размера текста в системе.
Т.е. для объектов предпочтительно использовать dp, а для текста sp.

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/button1"
    android:layout_marginLeft="49dp"
    android:layout_marginTop="32dp"
    android:text="TextView"
    android:textSize="50sp" />