The Text Select Demo had some minor UI glitches (Fixed)
Library NameSpace changed from 'com.warwickwestonwright.HGDialV2' to 'com.WarwickWestonWright.HGDialV2'
This dial widget is an advanced rotation control that you can easily include into any Android project in the form of an AAR file. You can think of this Dial control as a gesture library that is just concerned with rotation; having all of the conceivable behaviours you could possibly want in a rotation control. Supports API 16+
Features of the HGDialV2 Library:
1 The ability to record the direction of rotation.
2 Allows precision rotation settings causing the dial to rotate at a different rate than the gesture (including the ability to rotate in the opposite direction of the gesture).
3 It records the number of gesture rotations.
4 It records the number of image rotations.
5 It has a cumulative dial setting. When enabled the rotation will occur relative to the touch; and disabled the rotation will start from the point where the gesture starts.
6 It has an advanced angle snap feature with an angle snap tolerance setting. The tolerance causes the dial to rotate freely until the snap tolerance is met. It is also possible to have irregular snap points by adding an array of snap points along with their own tolerance settings.
7 The dial can operate in single or dual finger mode.
8 With this dial it is possible to set a minimum/maximum rotation constraint.
9 It has a variable dial behaviour causing the rotation rate to change depending on how close the gesture is the centre of the dial.
10 This library comes with a 'fling-to-spin' behaviour; having configurable fling tolerance, spin start/end speed and spin animation duration. The fling tolerance can be set to distance in pixels or angle. The spin animations time can have a set duration or have a dynamic duration relative to how vast the fling start speed is. There is also a flat to prevent a spin slow down.
11 A key feature is that the dial controls are designed to interact with each other and any other widgets/layouts that implement touch listeners.
12 All of the above features play together in perfect harmony.
13 Includes state management object.
14 Comes with a demo app complete with source code to help developers get a head start. Though the library is protected by an open source licence, the code for the demo app is free source.
This app demonstrates the following:
Cog Demo: Showing how one dial can interact with another dial. (also uses fling-to-spin).
Time Picker Demo: Showing how to use the dial as a time picker and how one clock hand can interact with the other hands. (also uses fling-to-spin).
Date Picker Demo: Showing how the library can dynamically use precision rotation. Also works with fling-to-spin.
Fast List Demo: Use the dial to quickly navigate through very long lists. Works with variable dial behaviour and fling-to-spin.
Text Select Demo: A great improvement on how to cut, copy and paste text. Uses variable dial, angle snapping and fling-to-spin behaviour.
You can find an app on the Google Play Store under this developer account called 'AB PlayList Demo' This shows the dial used to fast forward and rewind videos; utilising the variable dial behaviours. Link to the app is:
https://play.google.com/store/apps/details?id=com.WarwickWestonWright.ABPlayListDemo&hl=en_GB
You can find the open source repository at:
https://bitbucket.org/warwick/hg_dial_v2