are there design conventions for layouts on larger layouts? I feel like this is a question few have asked.
A lot of android layouts don't look good on larger screens, or the user experience doesn't translate so seamlessly.
A critique of android apps is that they just stretch on large screens, but don't have any design considerations for them.
Is there a resource that details how a user might want to make their layout-large xml file, if their default layout xml file includes a listview, for instance. On the mobile experience, a listview with just text will be fine, where on the larger screen experience, the listview by itself doesn't look too good.
I would like to add extra layout files, but I don't have any reference on what they should look like, or even in the planning design phases of an app, I don't have any reference on how it ought to be designed so that other screen sizes can be incorporated.
Mainly looking for a resource that addresses these issues. Like maybe a blog post that goes into detail about this. Google's tablet design guidelines were a helpful start too.
Insight appreciated
Perhaps these resources will help you out. I would make the general statement that probably the most common technique for adapting layouts from handset to tablet is making tablet layouts multi-pane. You mentioned that you already perused through the Google design guide, but I figured I'd highlight the one page that talks specifically about this:
Android Design: Multi-Pane Layouts
The general concept is that information you would have presented on multiple screens on the handset (e.g. the list of items, followed by the view to display the selection) can be brought together on the same screen on a tablet (so the list now sits side-by-side with the view of the current selection). You mentioned already how the resource framework assists in selecting the proper layout; on the code side Fragments are intended to assist with modularizing the code that goes along with the view as well.
Another resource that may be of use is from Googler Kirill Grouchnikov. He has a series of blog posts dealing with Google Play as a case study and how conceptually the UI was broken up to work between the handset and tablet:
Responsive Mobile Design
Hope that Helps!
Related
I am developing an app that has a viewpager, the problem is that it's components looses its's position when I try to fix it on particular screen size,it gets disturbed for another screen size.So I want to ask is it possible to have separate multiple layout files for the same activity for different screen sizes,if yes please tell me the procedure to do it.
Seeking for help,Thanks
Yes, it's possible, you can do it programmatically, checking the screen size and all the specs you want, but honestly I would like to suggest you instead to work properly on the layout, you can have a responsive, adaptable and resizeable layout if you follow the recommendations from google.
I highly suggest you to take a look at this article : https://developer.android.com/training/multiscreen/screensizes, or https://www.raywenderlich.com/155838/responsive-ui-tutorial-android , there are a lot more tutorials on the internet, if you learn how to play right with the layouts and its constraints you can create a single layout for several devices and its screens, that's the actual purpose of the Android layouts.
A friend of my and I are working on an android app and we have an argument regarding to the proper way for supporting different screen sizes.
according to the following link (http://developer.android.com/guide/practices/screens_support.html), one of google reccomendations is to create different xml layout files for each acttivity/fragment.
for one hand - we would like that our application will run smoothly on several types of devices. from the other hand - we would like to work smart and effective, and to save valuable time.
therefore my question is what is the proper why to work? should we generate several xml files for each activity? or maybe to the complicated ones only?
or maybe we can work out without creating multiple layout at all? it seems like too much effort..
Thanks
one of google reccomendations is to create different xml layout files for each acttivity/fragment
That is not their recommendation. Quoting the documentation that you linked to, with emphasis added:
By default, Android resizes your application layout to fit the current device screen. In most cases, this works fine. In other cases, your UI might not look as good and might need adjustments for different screen sizes. For example, on a larger screen, you might want to adjust the position and size of some elements to take advantage of the additional screen space, or on a smaller screen, you might need to adjust sizes so that everything can fit on the screen.
Google's recommendation,l therefore, is to have different versions of a resource for different screen sizes only where this is needed, where you determine if it is needed by trying it, seeing what it looks like, and determining that you cannot readily address any problems you are seeing by modifying the existing resource.
should we generate several xml files for each activity? or maybe to the complicated ones only? or maybe we can work out without creating multiple layout at all?
That is impossible to answer in the abstract, just as it is impossible to say whether you need custom CSS rules for different screen sizes for every possible Web page.
just try to make a layout but add multiple images xml to drawable for different different screens. doing this you can run your app on any size of screen (Not in every cases but it will help you).
I am trying to create my own Android Launcher so I have been reading through Google's own Launcher2 code, Cyanogen's Trebuchet code and the Home Example provided with the ADK but keep coming across the same question: What kind of layout is the home screen (the one with shortcuts and widgets on it and with user-selectable wallpaper)?
From what I can tell, Trebuchet is based largely on the Launcher2 code but sifting through it is proving really hard.
Looking quickly at the Trebuchet sources on github at
https://github.com/CyanogenMod/android_packages_apps_Trebuchet
They seem to make heavy use of custom layouts.
While purely one example, some of the layout xml's make use of PagedViewGridLayout which is defined over in the src folder in a file called PagedViewGridLayout.java
public class PagedViewGridLayout extends GridLayout implements Page
GridLayout is in turn a standard Android component - and just by its name seems to be the type of thing you would want for a launcher. Obviously something as complex as current launchers is going to use many varieties and tricks for it's various configurable, interactive panes.
Your basic keys to understanding the sources will be figuring out the hierarchy of the layout xml files (and anything created from code rather than inflated from xml). Then looking through the inheritance hierarchy and mechanisms of the various custom layouts used.
Are there any UI design guidelines for the upcoming Android tablets? Looks like the Archos 7 will be available sometime this month. My question is not about supporting the screen size but more about providing a more appealing UI interface for a bigger screen device.
Thanks
It is not really UI Design Guidelines, but you can create your custom layout extend ViewGroup and be able to react to extra big resolution of the screen by putting extra components on screen and alter the layout significantly, well beyond what's possible using the build-in multi resolution XML layout mechanism.
A great starting point would be the official Android Design Guidelines.
In particular, the sections on Multi-pane Layouts and Devices and Displays might be of interest to you.
When understanding Android app development, one of the most significant topics to comprehend is how to make delightful mobile interfaces and interactions. This indicates understanding the patterns within the Android universe, common style guidelines, patterns, etc.
The official Android docs have an outstanding set of design resources. This section will emphasize a few key design guidelines and link to the appropriate guides. You can also check out these Android design tips for a quick overview.
Screen Size and Orientation
System Bar
Back Button
Action Bar
Widgets
Notifications
Settings
UI Elements
Fonts
Split View and Multi-Pane UI
Embedded Multimedia
Clipboard
Design Patterns
I am trying to teach myself the basics of Android dev. At the moment I am experimenting with home screen widgets. I would like to create a simple widget that lists all my bookmarks. Somewhere in my googling I read that ListView is not usable in a widget. What's the best way to display a scrolling list in a widget? An example would be fantastic, but otherwise point me in the right general direction and I can research further.
Thanks in advance,
Dany.
ListViews are supported in Custom Launchers that support the scrollable-widgets extension or in the Launchers since Android 3.0 (Honeycomb). Take the Android Agenda Widget for example, this supports scrolling in Custom Launchers, or the GMail-widget on Honeycomb.
Scrolling widgets in Custom Launchers is described here:
http://www.geekrono.com/2010/08/android-scrollable-widgets.html
Scrolling widgets in Honeycomb and up is described here:
http://developer.android.com/guide/topics/appwidgets/index.html#collections
You can finnd the sources for good working example except for Honeycomb at http://code.google.com/p/scrollablecontacts/
I've only seen a huge list widget on phones with HTC Sense - example. HTC Sense has a widget like that for Stocks, Twitter, etc. I don't think it's a good idea to develop huge widgets like that, because they take up too much space and some phones are limited to 3 screens (screens that you can put your app shortcuts, widgets and etc).
This is a good article on Widget UI Patterns:
Widget Design Guidelines
Seesmic for Android has a 'list' widget with latest tweets:Seesmic Blog
Widget Screen
There's also an article on UI Patterns, based on the new Twitter app, hope that helps you - Link and a video (Android UI design patterns).
Re: user controls (like in .NET), Android Views and in your case 'ListView' is what you might use for your app. You also mentioned .NET (Visual Studio), you might be interested in MOTODEV Studio. It's basically a better version of Eclipse (with Android SDK) that has common code snippets and other cool stuff.