- 
                Notifications
    
You must be signed in to change notification settings  - Fork 6.3k
 
Defining Views and their Attributes
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.
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
 
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).
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>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" />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"
/>Created by CodePath with much help from the community. Contributed content licensed under cc-wiki with attribution required. You are free to remix and reuse, as long as you attribute and use a similar license.
Finding these guides helpful?
We need help from the broader community to improve these guides, add new topics and keep the topics up-to-date. See our contribution guidelines here and our topic issues list for great ways to help out.
Check these same guides through our standalone viewer for a better browsing experience and an improved search. Follow us on twitter @codepath for access to more useful Android development resources.