I run my applcation in Motorola,HTC devices and each group of devices my application dialog box,Text box appearance is different.Why this will happend?Is device to device any specific theme applied on my application?Iam n't used any custom theme for my application.
how to persist my application look and feel in all devices.I know little bit, by using our own theme we can persist.but, I don't have time to develope my own theme.I want to take the source of one device default theme and utilise that one in my application.So that I think i can see the application same in all devices.how to get the theme from one device,if my above sentence correct?
You are right every manufacturer applies some styling to their user interface.
There are some places where this is fine for example dialog boxes should look the same in every application on the device. If a dialog box would look completely different then all the other dialogs this would confuse the user.
Some things are annoying for example the motorola motoblur phones use a black background image for spinners and normal andoroid phones use a grey one.
Have a look at my question regarding this problem. It is a solution for a small part of your problem but maybe it shows you how to search for the other images and themes that you need to copy.
Related
I have a old problem to put my app in (almost) full screen mode (short edges) in my Android 11 (and now 12) Samsung cell phone as I've explained here.
My app has this look
And I would like this look
Today I've discovered that my app, can be configurated in
Settings, Display, Full Screen Apps.
My app is between the listed apps that allows to select between full screen mode and app default. Many apps don't appear on this list. I don't know what criterion Android uses to select the apps where it's posible to change the screen.
So I managed to change the app screen the way I wanted.
The only question is that the system displayed a white background navigation bar, so I had to add to the style setting in Styles.xml the following line:
<item name="android:navigationBarColor">#android:color/black</item>
However, I would love to do it programmatically. But I don't get it, as you can see here. I did a lot of research, a lot of Stackoverflow research, but nothing.
Could anyone try to help me?
Finally, I've found the solution, which can be read as an answer that I wrote here to my original question .
I am working with a team to develop a cross-platform application on mobile, and we're using Visual Studio 2015 and Xamarin.Forms v2.3.2.127.
We have already created the application icons that we need for the three different platforms (Android, iOS, UWP) and each one follows the native platform specifications.
There's only one more problem that we have faced, and I would like to know if there's any answer for my problem. Some of the devices that run Android OS forces the application icon to have a squared background, and they seem to give arbitrarily colours for the background (please check the image afterwards). We don't want to change the application icon by itself for Android so we're looking for a better way.
Is there any way in Xamarin to be able to detect that the device is adding a coloured background for the application icon so we can provide it with the icon that we want, or at least change the colour the device is going to use?
As you can see, Whatsapp, Facebook and Dropbox icons are all modified and given a squared coloured background.
Thanks in advance for any help that could be given.
Regards, Paul.
This is a custom launcher / icon pack's doing. Most likely the manufacturer's doing(LEAGOO). You may notice that "Known" apps will have a custom icon, but if you created a custom app it might look much different with a random background and perhaps an icon transformation of some sort.
It might be worth getting a stock Android device to ensure your Icon looks great on stock Android as you'll never know what different launchers(bloatware) will do to your app's icon.
If the OEM has a way to interop with it, then by all means that would be the easiest way to customize this behavior. However most launchers are included in the OEM's package/bloatware.
I'm playing with Android development and making some simple apps. I don't want to specify a theme for my app, I'd like it to use the system one; here I mean that every producer and/or user might choose a theme for the device, and the app should adapt to it, looking "native" everywhere. Coming from desktop development, that makes sense to me. I have an LG p880 with android 4.1.2, and I'm developing command-line only just to have control on such things.
Now, the strange thing: on my device my app has white text on black background, but all the other system apps, and especially Google's ones, are black on white. I suppose my app has the "right" appearance, not having forced one myself. So can it be that all the other apps have a custom theme inside? Does that mean that major app developers, and Google first, don't care about system consistency? Should a developer care as much about presentation as the contents?
I don't want to specify a theme for my app, I'd like it to use the system one
There are several dozen "system ones" (see the Theme_-prefixed entries). And, at the time of this writing, those don't even include the Theme.Material set coming up in the next major Android release (and available for experimentation in the "L" Developer Preview).
Coming from desktop development, that makes sense to me
Conversely, Web developers would consider a "system one" to be a foreign concept.
I have an LG p880 with android 4.1.2, and I'm developing command-line only just to have control on such things.
You are certainly welcome to develop "command-line only", but since the theme declaration (and definition, if custom) are in XML, you are welcome to use an IDE.
I suppose my app has the "right" appearance, not having forced one myself.
There is no "right" appearance.
So can it be that all the other apps have a custom theme inside?
Many probably do. Others will have chosen a different "system" theme. For example, if your targetSdkVersion is 11 or higher in your app, you are getting Theme.Holo as the overall default, given that you have not specified something to the contrary. Other apps will use Theme.Holo.Light.DarkActionBar, for example. Theme.Holo has a dark background with light text; Theme.Holo.Light.DarkActionBar has a light background with dark text except for the action bar.
Does that mean that major app developers, and Google first, don't care about system consistency?
No more than most Web developers care about "system consistency".
In part, that's because we went down the path you thought of years ago and rejected it. Device manufacturers would tinker with themes, and then our apps would no longer work well. For example, a manufacturer might decide to have dark text on a light background, inverting what other manufacturers had, and then in cases where we are tailoring our own font colors, we'd be screwed, as our colors wouldn't work right on some devices.
In Android 3.0, Google created the Theme.Holo family and said that those themes could not be modified by Google Play ecosystem devices. Instead, a Theme.DeviceDefault family was created, where manufacturers could tinker. I am not aware of any app that ever chose to use a Theme.DeviceDefault theme.
In the new Material Design aesthetic being promoted by Google as part of the next version of Android, things like highlight colors are supposed to vary either by app (for branding) or by content (e.g., choosing hues that work well with the photo we're displaying). And even before Material Design, Google has been taking steps to help make it easier for developers to use a custom color scheme to go along with one of the stock system themes (e.g., Android 4.4 de-emphasizing blue as being a touch highlight color).
I want to add black padding (a thick black border) to the android screen such that every app is displayed with the padding around it. I know how to do this for my app but how do I do this such that when my app is running in background the display is padded?
I don't believe this is possible unless you're willing to create and run a custom ROM.
Thankfully, this is not possible for the average non-ROM third party Android developer.
The screen on mobile devices is actually very limited, and when programming for the mobile environment, you have to learn to get away from the windows metaphor used by traditional desktop PCs.
On the other hand, may be your app could pretend it is running in the background, but still stay in the foreground with its transparency enabled. And perhaps if you can't do something, may be you can find a way to fake that something for your users.
Also, note that the default home launcher is capable of doing something similar to what you want, but only for widgets. And if being able to run widgets is sufficient for you, perhaps you could write your own launcher application that can embed widgets.
In my app I have a custom dialog that works great on my stock gingerbread rom. I checked my app out on my friend's Atrix, and there is this extra border that looks to be consistent with the rest of the ui (sorry, dont have an Atrix here to test it out). The same thing happens when i use my app on a Droid 1 with stock froyo (theres a thicker, grey border). Is there a way to get rid of this?
The only way to get rid of it is by overriding all the styles used in a dialog. Most of the time this is not necessary... a dialog on the Atrix will look like every other dialog on the Atrix, so the user doesn't really notice the difference. If you need a specific look to match your app, however, you need to style it.