You can replace old arrows to new with the following pattern
arw = Arrow[pt__List, opts : OptionsPattern[]] :>
{Arrowheads[HeadLength] /. {opts, HeadLength -> Automatic}, Arrow[{pt}]};
Graphics[Arrow[{1, 2}, {6, 7}, HeadLength -> 0.1]] /. arw
Graphics[{Arrowheads[0.1], Arrow[{{1, 2}, {6, 7}}]}]
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/ZVYmm.png)
Arrowheads
specifies the length of arrowheads as a fraction of the total width of the graphic. If you need another behavior see this question.
To take into account HeadCenter
and HeadWidth
you can specify your own graphics for the arrowheads
arw2 = Arrow[pt__List, opts : OptionsPattern[]] :>
{Arrowheads[{{HeadLength, Automatic,
Graphics@{EdgeForm[Black], Polygon@{{-1, HeadWidth/2}, {0, 0},
{-1, -HeadWidth/2}, {-HeadCenter, 0}}}}}] /.
{opts, HeadLength -> Automatic, HeadCenter -> 1, HeadWidth -> 0.5},
Arrow[{pt}]};
Show[Graphics[Table[Arrow[{0, 0}, {Sin[x], Cos[x]},
HeadCenter -> x, HeadLength -> 0.1] /. arw2,
{x, 0, 1.6, 0.2}],
PlotRange -> {{-0.1, 1}, {-0.2, 1.1}}]]
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/kTPaU.png)
It is very close to the original behavior
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/OiIoO.gif)