Android Programming The Big Nerd Ranch Guide by Bill Phillips, Chris Stewart, Kristin Marsicano (z-lib.org)

(gtxtreme123) #1

For the More Curious: More on Determining Device Size


For the More Curious: More on Determining Device


Size


Before Android 3.2, the screen size qualifier was used to provide alternative resources based the size
of a device. Screen size is a qualifier that groups different devices into four broad categories – small,
normal, large, and xlarge.


Table 17.1 shows the minimum screen sizes for each qualifier.


Table 17.1  Screen size qualifiers


Name Minimum screen size
small 320x426dp
normal 320x470dp
large 480x640dp
xlarge 720x960dp

Screen size qualifiers were deprecated in Android 3.2 in favor of qualifiers that allow you to test for the
dimensions of the device. Table 17.2 shows these new qualifiers.


Table 17.2  Discrete screen dimension qualifiers


Qualifier
format

Description

wXXXdp available width: width is greater than or equal to XXX dp
hXXXdp available height: height greater than or equal to XXX dp
swXXXdp smallest width: width or height (whichever is smaller) greater than or equal to XXX dp

Let’s say that you wanted to specify a layout that would only be used if the display were at least 300dp
wide. In that case, you could use an available width qualifier and put your layout file in res/layout-
w300dp (the “w” is for “width”). You can do the same thing for height by using an “h” (for “height”).


However, the height and width may swap depending on the orientation of the device. To detect a
particular size of screen, you can use sw, which stands for smallest width. This specifies the smallest
dimension of your screen. Depending on the device’s orientation, this can be either width or height. If
the screen is 1024x800, then sw is 800. If the screen is 800x1024, sw is still 800.


Challenge: Adding Swipe to Dismiss


For this challenge, you will add swipe-to-dismiss functionality to enhance CriminalIntent’s
RecyclerView user experience. Implementing swipe to dismiss will allow a user to delete a crime with
a single swipe to the right.


To get swipe to dismiss set up with CrimeFragment’s RecyclerView, wire up an
ItemTouchHelper (developer.android.com/reference/android/support/v7/widget/helper/
ItemTouchHelper.html). ItemTouchHelper provides a swipe-to-dismiss implementation and is
included with the RecyclerView support library.

Free download pdf