Making layouts compatible with tablet definitely, helps in increasing the target audience. Tablets are different than smartphones, they available in size as big as 7’’ and 10’’. This gives developers/designers a lot of screen space to work on which in turn can be utilized in a way different than smartphones. In the PSLab Oscilloscope Activity and in fact the entire application needs to have tablet support. To achieve these two approaches are used. They are as follow:
- Creating layouts compatible with the tablet
- Programmatically differentiate between phone and tablet
Creating layouts compatible with the Tablet
A series of following steps help to create layouts for the tablet with much ease
- Right click on layouts. Then move the cursor to new and select Layout resource file.
- A new resource file dialog box will appear. Under filename type the same name of the file for which you want to create tablet layout. Under directory name type layout-sw600dp for the layout of 7’’ tablet and layout-sw720dp for layout of 10’’ tablet.
- The Android Studio will automatically create a folder with two layouts, one for phone and another for tablet inside layouts folder. Now you can work on tablet layout and make the app compatible with the tablet.
Programmatically differentiate between Phone and Table
In Oscilloscope Activity of PSLab Android App, the dimensions of the layout are programmatically set. These dimensions are different from that should be used for the tablet. So, it is important for the app to know whether it’s operating on a phone or a tablet.
This can be achieved using the following steps.
- Right click on resources, move the cursor on new and select Android resource file.
- A new resource file dialog will appear, under file name type isTablet and press OK. Here we are creating a resource for a phone.
- In the XML file isTablet write the following code.
<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="isTablet">false</bool> </resources>
This resource returns false when accessed.
- Repeat 1, 2 step and under new resource file dialog box type values-600dp. Then write the following code.
<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="isTablet">true</bool> </resources>
This resource returns true when accessed.
- Now you can access this resource in Activity simply writing the following code.
boolean tabletSize = getResources().getBoolean(R.bool.isTablet);
tabletSize will be true if accessed in a tablet otherwise it will be false. Hence code can written accordingly.
By this way, we can find whether the application is running on tablet or phone programmatically.
- StackOverflow solution to How to find Tablet or Phone in Android, Programmatically?
- Android.com reference for Supporting Different Screen Sizes