50+
рмбрм╛рмЙрмирм▓рнЛрмб
рммрм┐рм╖рнЯрммрм╕рнНрмдрнБ рморнВрм▓рнНрнЯрм╛рмЩрнНрмХрми
рм╕рморм╕рнНрмдрнЗ
рм╕рнНрмХрнНрм░рм┐рмирм╕рмЯрнН рмЫрммрм┐
рм╕рнНрмХрнНрм░рм┐рмирм╕рмЯрнН рмЫрммрм┐
рм╕рнНрмХрнНрм░рм┐рмирм╕рмЯрнН рмЫрммрм┐
рм╕рнНрмХрнНрм░рм┐рмирм╕рмЯрнН рмЫрммрм┐
рм╕рнНрмХрнНрм░рм┐рмирм╕рмЯрнН рмЫрммрм┐
рм╕рнНрмХрнНрм░рм┐рмирм╕рмЯрнН рмЫрммрм┐

рмПрм╣рм┐ рмЖрмкрнН рммрм┐рм╖рнЯрм░рнЗ

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
рмЧрмд рмЕрмкрмбрнЗрмЯрм░ рм╕рморнЯ
рмормЗ 15, 2022

рмбрм╛рмЯрм╛ рм╕рнБрм░рмХрнНрм╖рм╛

рмбрнЗрмнрнЗрм▓рмкрм░рморм╛рмирнЗ рмЖрмкрмгрмЩрнНрмХ рмбрм╛рмЯрм╛рмХрнБ рмХрм┐рмкрм░рм┐ рм╕рмВрмЧрнНрм░рм╣ рмПрммрмВ рм╕рнЗрнЯрм╛рм░ рмХрм░рмирнНрмдрм┐ рм╕рнЗрм╣рм┐ рмзрм╛рм░рмгрм╛ рм╕рм╣рм┐рмд рм╕рнБрм░рмХрнНрм╖рм╛ рмЖрм░рморнНрмн рм╣рнБрмПред рмЖрмкрмгрмЩрнНрмХ рммрнНрнЯрммрм╣рм╛рм░, рмЕрмЮрнНрмЪрм│ рмПрммрмВ рммрнЯрм╕ рмЖрмзрм╛рм░рм░рнЗ, рмбрм╛рмЯрм╛ рмЧрнЛрмкрмирнАрнЯрмдрм╛ рмУ рм╕рнБрм░рмХрнНрм╖рм╛ рмкрнНрм░рм╛рмХрнНрмЯрм┐рм╕ рмнрм┐рмирнНрми рм╣рнЛрмЗрмкрм╛рм░рнЗред рмбрнЗрмнрнЗрм▓рмкрм░ рмПрм╣рм┐ рм╕рнВрмЪрмирм╛ рмкрнНрм░рмжрм╛рми рмХрм░рм┐рмЫрмирнНрмдрм┐ рмПрммрмВ рм╕рнЗ рм╕рморнЯрм╛рмирнБрм╕рм╛рм░рнЗ рмПрм╣рм╛рмХрнБ рмЕрмкрмбрнЗрмЯ рмХрм░рм┐рмкрм╛рм░рмирнНрмдрм┐ред
рмдрнГрмдрнАрнЯ рмкрмХрнНрм╖рмЧрнБрнЬрм┐рмХ рм╕рм╣ рмХрнМрмгрм╕рм┐ рмбрм╛рмЯрм╛ рм╕рнЗрнЯрм╛рм░ рмХрм░рм╛рмпрм╛рмЗрмирм╛рм╣рм┐рмБ
рмбрнЗрмнрнЗрм▓рмкрм░рморм╛рмирнЗ рмХрм┐рмкрм░рм┐ рм╕рнЗрнЯрм╛рм░рм┐рмВрм░ рмШрнЛрм╖рмгрм╛ рмХрм░рмирнНрмдрм┐ рм╕рнЗ рммрм┐рм╖рнЯрм░рнЗ рмЕрмзрм┐рмХ рмЬрм╛рмгрмирнНрмдрнБ
рмХрнМрмгрм╕рм┐ рмбрм╛рмЯрм╛ рм╕рмВрмЧрнНрм░рм╣ рмХрм░рм╛рмпрм╛рмЗрмирм╛рм╣рм┐рмБ
рмбрнЗрмнрнЗрм▓рмкрм░рморм╛рмирнЗ рмХрм┐рмкрм░рм┐ рм╕рмВрмЧрнНрм░рм╣рм░ рмШрнЛрм╖рмгрм╛ рмХрм░рмирнНрмдрм┐ рм╕рнЗ рммрм┐рм╖рнЯрм░рнЗ рмЕрмзрм┐рмХ рмЬрм╛рмгрмирнНрмдрнБ

рмирнВрмЖ рмХрмг рмЕрмЫрм┐

The Text Select Demo had some minor UI glitches (Fixed)
Library NameSpace changed from 'com.warwickwestonwright.HGDialV2' to 'com.WarwickWestonWright.HGDialV2'