MeterGuage的针问题在4.2安卓版本

MeterGuage of needle issue in 4.2 Android version?

本文关键字:安卓版本 问题 MeterGuage      更新时间:2024-01-05

在2.2版本中,针的计量工作正常,而在Android 4.2版本中,除了浏览器之外,我在模拟器/手机中执行时会看到双针。我搞不清楚这个问题。

<!DOCTYPE html >
<html>
<head>
    <link rel="stylesheet" href="demos.css" type="text/css" media="screen" />
    <script src="core.js" ></script>
    <script src="dynamic.js" ></script>
    <script src="effects.js" ></script>
    <script src="meter.js" ></script>
    <!--[if lt IE 9]><script src="../excanvas/excanvas.js"></script><![endif]-->
    <meta name="description" content="A Meter chart that has been customised to appear circular. It use Meter chart customisations as well as CSS effects" />
    <meta name="robots" content="noindex,nofollow" />
</head>
<body>
    <!--  <div style="width: 450px; height: 450px; background-color: white; border-radius: 250px; text-align: center; font-family: Arial; box-shadow: 0px 0px 25px gray; border: 10   px solid #ddd"> -->
    <canvas id="cvs" width="300" height="300" style="background: url('background.jpg') no-repeat scroll 0 0 transparent; ">
        [No canvas support]
    </canvas>
    <script>
            meter = new RGraph.Meter('cvs', 0,100,65)
                .Set('border', false)
                .Set('tickmarks.small.num', 0)
                .Set('tickmarks.big.num', 0)
                .Set('angles.start', HALFPI + (HALFPI / 1.0))
                .Set('angles.end', TWOPI +HALFPI - (HALFPI / 1.0))
                .Set('segment.radius.start', 0)
                .Set('text.size', 16)
               .Set('colors.ranges', [])
               .Set('text.color', 'transparent')
                .Set('needle.radius', 110)
                .Set('background.color', 'transparent')
                .Set('gutter.bottom', 135)
                .Draw();
            meter.canvas.onclick_rgraph = function (e)
            {
                var obj = e.target.__object__;
                var value = obj.getValue(e);
                    var str = (value<20.0) ? "1" : 
                  (value<40.0) ? "2" : 
                (value<60.0) ? "3": (value<80.0)?"4":"5"; 
                //document.getElementById('result').value = str;
                if (typeof(value) == 'number') {
                    obj.value = value;
                    RGraph.Effects.Meter.Grow(obj);
                }
            }
        </script> 
    <!-- </div> -->
</body>
</html>

在2.2版本中,针的计量工作正常,而在Android 4.2版本中,除了浏览器之外,当在模拟器/手机中执行时,我会看到双针。我搞不清楚这个问题。

您需要在加载画布之前清除画布。请尝试此代码。

<script>
meter = new RGraph.Meter('cvs', 0,100,65)
        .Set('border', false)
        .Set('tickmarks.small.num', 0)
        .Set('tickmarks.big.num', 0)
        .Set('angles.start', HALFPI + (HALFPI / 1.0))
        .Set('angles.end', TWOPI +HALFPI - (HALFPI / 1.0))
        .Set('segment.radius.start', 0)
        .Set('text.size', 16)
        .Set('colors.ranges', [])
        .Set('text.color', 'transparent')
        .Set('needle.radius', 110)
        .Set('background.color', 'transparent')
        .Set('gutter.bottom', 135)
        .Draw();
        meter.onbeforedraw = function (obj)
        {
            RGraph.clear(obj.canvas, 'white');
        }
        meter.canvas.onclick_rgraph = function (e)
        {
            var obj = e.target.__object__;
            var value = obj.getValue(e);
                var str = (value<20.0) ? "1" : 
              (value<40.0) ? "2" : 
            (value<60.0) ? "3": (value<80.0)?"4":"5"; 
            //document.getElementById('result').value = str;
            if (typeof(value) == 'number') {
                obj.value = value;
                RGraph.Effects.Meter.Grow(obj);
            }
        }
    </script>