Defining Views and their Attributes - meswapnilwagh/android_guides GitHub Wiki

Overview

Defining view components within a layout is a critical part of Android development. Let's take a look at common views as well as common attributes of views.

Common Views

The six most common views are:

  • TextView displays a formatted text label
  • ImageView displays an image resource
  • Button can be clicked to perform an action
  • ImageButton displays a clickable image
  • EditText is an editable text field for user input
  • ListView is a scrollable list of items containing other views

View Identifiers

Any view can have an identifier attached that uniquely names that view for later access. You can assign a view an id within the XML layout:

<Button android:id="@+id/my_button" />

This id can then be accessed within the Java code for the corresponding activity (in onCreate of Activity for example):

Button myButton = (Button) findViewById(R.id.my_button);

Another important note is that any view with an id specified will automatically retain its state on a configuration change (i.e phone orientation switch).

Views Margin and Padding

Margins and padding values for views allows us to position and space elements in a layout.

  • Layout Margin defines the amount of space around the outside of a view
  • Padding defines the amount of space around the contents or children of a view.

An example of setting margins and padding:

<LinearLayout>
   <TextView android:layout_margin="5dp" android:padding="5dp">
   <Button layout_marginBottom="5dp">
</LinearLayout>

View Gravity

Gravity can be used to define the direction of the contents of a view.

  • gravity determines the direction that the contents of a view will align (like CSS text-align).
  • layout_gravity determines the direction of the view within it's parent (like CSS float).

An example of applying gravity:

<TextView
  android:gravity="left"
  android:layout_gravity="right"
  android:layout_width="165dp" android:layout_height="wrap_content"
  android:textSize="12sp" android:text="@string/hello_world" />

View Attributes

Every view has many different attributes which can be applied to manage various properties.

  • Certain properties are shared across many views such as android:layout_width
  • Other properties are based on a view's function such as android:textColor

Common view attributes include:

Attribute Description Example Value
android:background Background for the view #ffffff
android:onClick Method to invoke when clicked onButtonClicked
android:visibility Controls how view appears invisible
android:hint Hint text to display when empty @string/hint
android:text Text to display in view @string/foo
android:textColor Color of the text #000000
android:textSize Size of the text 21sp
android:textStyle Style of the text formatting bold

Review the View docs and TextView docs for a list of additional attributes. An example of setting view attributes:

<TextView
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="@string/hello_world"
   android:background="#000"
   android:textColor="#fff"
   android:layout_centerHorizontal="true"
/>

References