If I'm using ActionBarSherlock, and My activity looks like this in Ice Cream Sandwich:
will the buttons and other elements keep Ice Cream Sandwich's style or will they revert to the Android version It's running on? (If I'm running it on 2.3, will the buttons look like standard Android 2.3 buttons, or will they still look like Android 4.0 like the picture?)
ActionBarSherlock does nothing to backport any style other than that of the action bar. The only reason that it does this is to create a consistent base for styling.
Bringing back anything else would be out-of-scope for the library. Your buttons will look like gingerbread buttons on pre-Honeycomb Android. I strongly suggest you take the assets from the platform you like (such as Ice Cream Sandwich) and customize them to fit your app's look and feel and then use those on every platform.
Related
Is there a theme that we can use in Eclipse or Android Studio for doing XML layouts? I know we should use:
<style name="CustomTheme" parent="#android:style/Theme.DeviceDefault">
to get the Glass theme on the device, but how about while laying out in the editor?
Since it looks like the XML got eaten up in your original post, I'll repeat the tips to get the Glass theme on the device: remove any android:theme attributes that your IDE has automatically inserted, or if you need a custom theme, have it inherit from Theme.DeviceDefault (see GDK: Glass theme and UI widgets).
Eclipse and Android Studio do not yet provide an out-of-the-box exact Glass layout experience. You can approximate it fairly well by creating a device definition in the AVD Manager that matches the screen resolution on Glass (640 × 360, notlong, hdpi) as suggested by this post.
Then, select that device definition in your layout editor. You may also want to select Theme.DeviceDefault.FullScreen.NoActionBar to remove the status bar and action bar in your editor preview.
You might want to look at how I accomplished getting the Glass theme (which is just no theme as discussed in https://developers.google.com/glass/develop/gdk/ui/theme-widgets) in a Hello World app for Glass. Since the ADT in Eclipse creates a Theme by default and assigns it to the application in AndroidManifest.xml, I just had to remove it.
Here is a Git commit that shows this in action: https://github.com/luisdelarosa/HelloGlass/commit/a58208ddef2b9b25ac605735da0dd93860492477
Specifically I looked for this line in AndroidManifest.xml and removed it:
android:theme="#style/AppTheme"
I also removed the res/values/styles.xml since it was not being used anymore - it only had the themes in it.
As for having a graphical editor for Glass layouts, I don't think this is that well supported yet since we are still in Sneak Peek mode. Perhaps once we get to the Developer Preview mode, the Glass team will create editors that will allow us to design for the Glass UI exactly.
As seen by the GDK sample code, there is a set of Android Widget classes (TextView, etc) that are supported on Google Glass. Has anyone compiled a list? I would love to know what options I am working with prior to the official GDK.
According to what I have gathered, you should be able to use any UI element within your application using GDK (it's simply an Android activity displayed in Glass). There are some services that aren't available though, that is really the only limitation at the moment. Some limitations I've spotted are: SpeechRecognizer not available - use RecognizerIntent instead, GPS might have some issues/limitations.
Since Glass is built on Android, all of the standard Android widgets are available. You should, however, restrict yourself to widgets that provide a high-quality user experience on Glass. For example, buttons and checkboxes aren't very usable since the user can't click on them directly.
I am a complete noob with regards to Blackberry development. I would like to know if it is possible to group items by header. Example: If the header is "Test", and then display a couple of items in a grid beneath it, and then have another header "Testing" and display some more items, so on and so forth. Would something like this be possible? (What I have in mind would look like the contacts on a android device, but the contact names would not be displayed in a list, but rather in grid form) I would appreciate any advice as I am currently working through the sample apps available on the BB dev site.
That would certainly be possible. The GroupDataModel with the ListView have that functionality baked in. You may want to use the GridListLayout if your heart is set on a grid layout.
Win32 look nasty, how to make it look better by custom skins?
I mean something like Adobe products, iTunes, Autodesk 3dsmax and Softimage XSI, Windows media player, Blender, Comodo firewall, Winamp, Babylon client, and few download managers etc.;
there are many similar applications out there but I can't find any proper tutorial or guideline, it looks like secret recipe!
only -two- tutorials available online:
old and useless: http://www.codeproject.com/Articles/20497/Draw-Skin-Window-Using-Pure-Win32-API
only cover opaque background (and this is what I avoid, I need more about GUI components):
http://www.flipcode.com/archives/Win32_Window_Skinning.shtml
Is there any book or proper guideline to learn how to build skins for Win32api?
Edit: I accept David Rodríguez comment, down there ↓↓
I have done this before using C++ Builder. The approach I took was to create a form, set it to be borderless and color the entire form the same color. Then I set the form transparency to this color. I then add images to the form which create the desired skin.
I'm sure this can all be done through standard win APIs, but I can't describe (or advise) doing it solely through API calls.
The operating system handles "skinning" for you automatically.
In "classic" mode (or Windows 2000 and earlier versions), this gets you a, well classic-looking interface. The windows are drawn just like they always were since Windows 95. Presumably, this is what you are referring to when you say that "Win32 look nasty". However, you need to realize that many people like this look and specifically choose to enable it on their machines. [WARNING: Personal opinion coming up!] I'm one of those people, and judging from the screenshots that get posted here from developers' machines, I'm definitely not the only one.
Windows XP actually introducing the "skinning" or theming engine, which lives in a set of Windows DLLs. By explicitly linking to version 6 of ComCtl32.dll, your application would automatically get these visual effects. Some people said this version of Windows looked "Fisher-Price", while others were perfectly happy with the term "gaudy". The option was retained to allow the user to switch to the "classic" theme (as described above), if desired.
Windows Vista completely overhauled Windows's theming engine and introduced a new UI known as "Aero". This provides flashy-looking windows and controls, complete with transparency effects—that is, as long as your graphics card supports it. Again, by explicitly linking to version 6 of ComCtl32.dll, your application would automatically get all of these styles applied.
It's worth noting that through all of this, Microsoft has provided users with the ability to customize the colors (and fonts and other things) used in the user interface. For example, Aero defaults to blue. If you don't like blue, you can change it. I change my UI colors periodically for fun and to re-energize myself. If you can't read or don't like the font, you change it, too.
Thus, if you choose to do something different with your application, defining your own custom color palette and ignoring the options chosen by the user through the provided customization interface, your app is going to look broken and stick out like a sore thumb on the user's desktop. When designing a UI, the last thing you want to do is to be or look different.
In short, upgrade your computer to Windows Vista or later and enable the Aero interface if you want flashy. Don't override the user or try to custom draw all of your controls. You'll just end up with an application that is hard to use, doesn't work as expected, is a pain in the rear to maintain, and just generally looks worse than if you'd simply left it alone.
If a custom list control is to be developed for S60 5th edition phones, what is the best approach to do that?
The control should enable rich presentation of data in custom layouts. It should be possible to include images, texts, buttons in every item. Each list item should be able to expand/collapse to provide more details about the item, and the rest of the list should adapt to the display space that is left.
Do you know of any Symbian application that has a control similar to this?
As this control should be flexible as well, I have been thinking about using some UI layout that is configurable by XML. So far, I have come up with HTMLControl for Symbian. What else can you recommend? What's your best practice?
The UI is tightly linked to native code in C++, so I am not considering WRT.
Subclassing listboxes in S60 (Avkon) is a major pain. I've done this a few times, more or less successfully, ususally less.
It is telling that Jan-Ole wrote his custom list box for Gravity, it probably spared him a lot of effort and made the UI experience better.
So either write something from scratch that just draws on the screen, or see if you can start using Qt already. It will be shipping in Symbian^3 onwards, and does install all the way back to S60 3rd edition.