The live wallpaper application should meet the following design requirements:
- support android devices running API 10 (Android 2.3.3 gingerbread) or later
- efficiently support device screen sizes of small, normal, large, and xlarge and densities of ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high)
- support landscape and portrait orientation when the device supports it e.g. tablet devices
- source code should contain brief comments explaining major blocks of code
- source code should follow android development and design guidelines [url removed, login to view]
- efficiently consume system resources comparable with other live wallpaper applications
- the live wallpaper should consist of three visual layers, "front", "middle" and "back". Visibility of layers should obey the alpha value of sections of the each layer. The images for each layer will be provided.
- horizontal dimensions of each layer may be different. As a user scrolls between virtual panes within the mobile device, scrolling for each layer should be linear and smooth. This will provide the illusion of depth of field. i.e. the front layer will scroll faster than the middle layer and the middle faster than the back layer
- provide support for a configuration menu accessed via a "Settings..." button upon activation of the wallpaper.
-- Upon "Clicking" the button, if the variable lite_version=TRUE, the user should be presented with a message stating that configuration is only available via the paid version. The message string should use a string resource
-- if lite_version = FALSE, the user should be presented with a menu of options.
--- Option #1 - "Live Wallpaper Settings"
---- "Enable Animation" - this is presented as a checkbox
---- "Reset Settings" - this resets all configuration options to default
--- Option #2 - "Animation Settings"
---- "Speed 1-10" - this is presented as a horizontal slider bar
---- "Density 1-10" - this is presented as a horizontal slider bar
--- Once animation is enabled, two new layers called "animation-front" and "animation-back" will be created. These layers should be placed between the front & middle layers and middle & back layers respectively and obey the same smooth scrolling rules described earlier.
--- the values of "speed" and "density" alter the speed and density of small images displayed on the two animation layers "animation-front" and "animation-back".
--- the value of "speed" controls the vertical descent rate of each small image . A value of 1 results in a Traversal Time (TT) of 10 seconds. A speed of 10 results in a TT of 1 second. In general TT = 10 / (speed)
--- the value of "density" controls how many new images are added to each layer per second. Images should be randomly distributed horizontally for each layer and their position updated a number of times each second to give the illusion of moving smoothly from the top to the bottom of the respective display layer. Furthermore, the movement should approximately follow a sinusoidal path. The amplitude of the motion should use a class or member variable that's configurable upon compilation. There is no requirement to make this a user configurable variable
--- Option #3 "Scene Settings"
---- "Daytime Effects" - this is presented as a checkbox
---- Once enabled, an additional compound layer is added to the display above the existing "front" layer. The compound layer consists of a cures adjustment to control the overall lighting within the scene and a mask to prevent the curves adjustment control from changing the masked area. The curve adjustment control will change depending on the time of day. It will be darkest at 12 AM (phone local time) and normal at 12PM (phone local time). The compound layer should be computed once each hour.
- All application source code + copyright on the the code and permission to make derivative works
- A fully functioning app (once compiled) that implements the spec
14 freelancers are bidding on average $766 for this job
We have more than 6 years of experience in this field with our skillful team of designers and intelligent programmers working with primary goal of 100% work satisfaction. Please check PMB.