I am new to Android. So new that I am not even clear on the terminology. From the user perspective, one can swipe from one page (iOS term) to another on Android. I have been told that these are called "panels" - but googling that term, I find out about the notification panel - which seems to be what iOS would call the status bar. Or, perhaps, these are called "home screens"
I would like to find out if there is a way to change the background image as the user swipe from one page/panel(?) to another. For example, I might want my game apps to have a green background and my social media apps to have a blue background. If this can be done by setting a panel's background image, that would be good. If there's a hack with wallpapers, that would be okay, too.
Any pointers to Android UI guideline doc that names visual entities would be great. Likewise, any pointers to a glossary of Android UI terms would also be wonderful.
Thanks in advance.
UPDATE:
I have just come across "live wallpaper" and am wondering if this - with onOffsetsChanged() - is the way to go.
In regards to the widget questions the term has two meanings: the UI components provided by the API such as TextView, Button, and WebView and the other meaning is an icon on the launcher that does more than start an app. The latter is also referred to as App Widget and an example of this would be music player controls or weather report. Both kinds of widgets are documented at the Android Developer website.
Wallpapers are typically Live or static. Live Wallpapers are similar in idea to screensavers but do not have the same function as screensavers are for inactivity. They can also be interactive. Static wallpapers are generally bitmaps that are cropped for the situation or specially made for the dimensions. In addition a Launcher (which is the name of the "desktop application" and the Launcher Home being the "Desktop") can be replaced to provide additional features for wallpapers. For your specific question about having an image gallery style wallpaper, the vanilla Launcher does not support this.
Related
I need a home screen clone app that uses apps, folders, swipable screens of more apps and so on.
So far, I have looked into custom launchers like this one here: https://www.androidauthority.com/make-a-custom-android-launcher-837342-837342/
But to achieve what I need will require a lot of extra additions (the icons are easy enough, but I'll need folders and swiping as well).
Another approach I wondered about is Kiosk mode/Lock-Task-Mode and multi-app kiosk mode. I've looked at the docs and wondered if this could be used to harness the actual homescreen, while still executing code in the background based on what apps the user selects (ultimately acheiving the same desired effect of my project).
I've spent a full day looking at this but I want to know if I'm on the right path. Obviously, I could create an app that contains all of this, but I do think I want it to be a launcher app that's locked in place so that users can't operate the actual home screen and its apps. No malicious intent here, it's just for a closed-off research project.
Any insight is greatly appreciated.
What i wanted to do, and didn't find any suitable solution, is :
create a scene in tasker (no problem on doing it :) )
display this scene on overlayed mode on other app (ex: waze,). Overlay is mandatory (as i know but i am maybe wrong) to let's the underlayed application work and refresh screen normally
allow interaction with button on the scene, just like we can do it if i choose the dialog mode for my scene. The problem with dialog mode is that the underlayed apps screen does not refresh.
In fact what i wanted to to is to display some button when i am running waze, to allow me to sens ETA Sms to my wife, or skip to the next track on my musics apps, or close waze quickly.....
As a resume i want to do what is
create floating windows like offered by apps like Overlays
but only using tasker
Best regards
Best
Please share some images of your requirements so that we can help you better but anyways I found a solution maybe it'll help you with some little customization.
According to my understanding, you need something like this:
You can download the whole project and customize it according to your requirements from Here
As many other Android developers, I'm not a huge fan of splash screens, but still most customers want them because iPhone has them or some other "great" reason.
In the android guidelines it says:
Naturally, you want everyone to quickly learn the ropes, discover the cool features, and get the most out of your app. So you might be tempted to present a one-time introductory slideshow, video, or splash screen to all new users when they first open the app. Or you might be drawn to the idea of displaying helpful text bubbles or dialogs when users interact with certain features for the first time.
Link here, first paragraph in "Don't show unsolicited help, except in very limited cases"
And now in the material design guidelines they recommend developers to use a "Launch Screen"
Because launching your app while displaying a blank canvas increases its perceived loading time, consider using a placeholder UI or a branded launch screen.
I'm guessing the android website hasn't been updated yet. Anyway, the last version of Hangouts (5.0.104...) has a very nice and quick Launch Screen. Its displayed instantly on my Nexus 5 with Marshmallow. So my question, is there an "official" way of doing this?
I've been searching for examples but can't find anything except for kind of workarounds like this example here which uses what I think is the most common approach with a Splash Screen Activity. This, however, shows a white screen when the app has been destroyed before your actual splash screen is shown.
This second example uses a theme with a window background which is shown instantly but disappears almost equally quick.
So, how does Google make the Launch screen like in Google Hangouts which is shown without delay and without any white screen before?
A colleague from my work have been in a material design training at Google HQ in London and their official way of doing it is using the windowBackground in the theme as you posted on your own question: http://antonioleiva.com/branded-launch-screen/
The idea is that the XML theme gets show very very fast by the framework, and as soon as your actual layout is loaded it will be visible.
The difference between Hangouts or even Google Maps, is that their layout is a very heavy/complex layout and they simply take longer to load than a HelloWorld app.
As your app grows and gets more complex and with more elements being initialized during Application.onCreate or Activity.onCreate, your slash screen will also be visible for longer time.
edit:
I've found a Google+ post from the official "Android Developers" profile and repost from Google engineer Ian Lake saying the same thing:
https://plus.google.com/+AndroidDevelopers/posts/Z1Wwainpjhd
https://plus.google.com/+IanLake/posts/SW7F2CJvAmU
It's because the first solution (http://antonioleiva.com/branded-launch-screen/) is changing the theme in onCreate. But the widgets of your activity are not yet rendered in onCreate. That's why you see the white screen. The second example is a good one. If you need longer time set SPLASH_TIME to longer. Check the line Thread.sleep(SPLASH_TIME) in the doInBackground function. You can wait more.
Hello guys (and girls),
I need your help in the matter of how to structure things in an Android app that I'm developing.
So far I have:
a Login activity that shows up right after the app is started
a Main activity that display some options for the user. Among them there is an option to start the device's camera (user taps on an icon that should launch the Camera), take a picture, crop it / rotate it and upload it to a remote server
Now, my question is: how should I organize things in my app logic so that everything will be clear and easy to manage in the future, for the upcoming versions?
I'm thinking like this but I'm not sure if it is the right way:
create a separate activity (eg. PictureCaptureActivity) for the picture capture task
create a separate activity (eg. PictureProcessActivity) for the picture processing tasks (crop and / or rotate - these options will be available via some buttons displayed on screen, in the main menu bar)
create a separate activity (eg. PictureUploadActivity) for the picture upload tasks
Or should I include all these functionality in my MainActivity somehow? Or... ?
Thank you in advance for your guidelines!
Before i start referring you to well written documentation and examples i have one main point i would like to emphasis and convey.
You are referring to Activities where modern Android applications are compartmentalized by Fragments (not that modern, almost 3 years) and the point of that being that the same application can work by utilizing almost 100% of the code on all Android* devices and form factors (mobile, tablet, TV, wear, auto etc.).
Now lets talk business, the best place to start reading on regarding Android is Google:
Design/patterns/application structure - from the android.developers.com documentation site.
Application quality checklist - created by Google following hundreds of case studies and a meticulously planned UX test.
Design guidelines - updated just 2 days ago (16.4.15).
IOSched - Google's display window for Android code where they show how they think an Application should look, feel and behave.
After that i would love to link you to a code lab i co-wrote with a couple of friends and a few blog posts i have written as a follow-up:
AndConLab
My tech blog on Android
Goodluck.
PictureCaptureActivity
Do you want to have a custom interface for taking pictures with the camera, or use an existing application on the phone?
Yes - You will need a PictureCaptureActivity and will have to implement the camera functionality yourself.
No - You can use an Intent to get the user to take a picture using another application and return it to you.
Either way, you will need to look at the Camera documentation.
PictureProcessActivity
You will most likely need to have a PictureProcessActivity to process the pictures in the manner you want.
PictureUploadActivity
The PictureUploadActivity is not really necessary. You could use a Progress Dialog or Progress Bar to show the progress in the PictureProcessActivity.
MainActivity
In my opinion you need at least two activities:
MainActivity / PictureCaptureActivity to take a photo
PictureProcessActivity to process the photo
You could fit it all into one activity by hiding and showing icons in the Action Bar, but I'd rather not because the Activity Documentation states:
An activity is a single, focused thing that the user can do.
Disclaimer: There is no 100% correct way to do this.
I've found this to be very helpful when it comes to code keeping: https://google-styleguide.googlecode.com/svn/trunk/javaguide.html
The one thing I can't stress enough: comment your code
My question today relates to the android home screen and where it stores icon / widget positions. Specifically, I am interested in accessing the positions and sizes of any icons that are currently being displayed. I have, so far, been unable to find a method of retrieving the positions of other applications but i figure it must be possible in some way due to the presence of third-party home screen applications.
Ideally, I am hoping to query the positions of whatever is on the screen at the moment from a live wallpaper and adjust my rendering accordingly.
Thank you in advance for your time.
There is no way as far as I know of doing this. You may be able to contact the developer of the homescreen (if it's not the default one or senseUI) and have them expose an API to do this.
Third party homescreens draw all the icons themselves. They REPLACE the original homescreen, they don't just put a theme on top of it.
You should just create your live wallpaper and if the user wants to see it instead of homescreen icons or widgets, they can move them. It would be impossible to take into account all the widgets and crap on the screen.