my current task is to create an user interface for a mobile strategy game. stuff can be transported from point a to point b. the user can select an amount of stuff between 1 and 1.000.000. it is importan that he can choose any amount he likes. how would you solve this without using a textfield and keyboard entry? i have some ideas in mind but am eager to listen to other ideas.
Common solutions to this problem:
- Use a text field, not a label. Even with the methods below, you can still allow the user to select the text field as a backup input method. Make sure the text field is set as a digit entry (tells the mobile device to only show numbers, not the full keyboard).
- Slider (Alexey's suggestion)
- Up/Down control: Use an up/down control. Tap the button to add 1. Hold the button to add many. The speed will change if the button is held longer. Having two or more up/down controls (e.g., one for +/- 1, one for +/- 1000) may help.
- Send X. Clicking "Send X" will send X stuff immediately (clicking twice will send 2X, etc.). In many contexts, choices like "Send All", "Send Max" and "Send Half" are appropriate. In a fast-paced real-time game, removing a click may be important.
I like the idea behind iPhone Music player slider which is used for positioning inside a track. It's a regular slider which has one interesting nuance: the far your finger from the slider bar (vertically) the more precisely control will let you to position. I.e., if you move it as usual it will allow you to position (depending on the length of the track) between 10s chunks, and if you will move your finger away it will let you to position by 5s or even 1s steps.
You may use such control and increment value (for example) by 10,000 and as soon as user will move his finger away from the slider make the value incremented (decremented) by smaller and smaller amount.