Iphone 如何在ios中提取电池

Iphone 如何在ios中提取电池,iphone,ios,core-graphics,quartz-graphics,Iphone,Ios,Core Graphics,Quartz Graphics,我想画一个电池来显示我的一个通过蓝牙连接到手机的设备的电池电量 我怎样才能做到这一点?我是个2d绘图高手。。。。任何指针都是有用的 谢谢 我想画一个电池来显示我的一个电池的电量 通过蓝牙连接到手机的设备 编写代码来绘制一个不可缩放的静态图像(如电池)似乎有很多麻烦。当然,你可以这样做,但在绘图程序中绘制图像并将其作为资源添加到应用程序中要容易得多 如果要在代码中绘制电池,请先在纸上或绘图程序中绘制形状。然后写下你需要做的所有绘图操作的列表——对于电池来说,它可能只是一系列的直线和曲线。提供了这些

我想画一个电池来显示我的一个通过蓝牙连接到手机的设备的电池电量

我怎样才能做到这一点?我是个2d绘图高手。。。。任何指针都是有用的

谢谢

我想画一个电池来显示我的一个电池的电量 通过蓝牙连接到手机的设备

编写代码来绘制一个不可缩放的静态图像(如电池)似乎有很多麻烦。当然,你可以这样做,但在绘图程序中绘制图像并将其作为资源添加到应用程序中要容易得多

如果要在代码中绘制电池,请先在纸上或绘图程序中绘制形状。然后写下你需要做的所有绘图操作的列表——对于电池来说,它可能只是一系列的直线和曲线。提供了这些操作,从它开始可能比深入到Quartz2D更容易

我想画一个电池来显示我的一个电池的电量 通过蓝牙连接到手机的设备

编写代码来绘制一个不可缩放的静态图像(如电池)似乎有很多麻烦。当然,你可以这样做,但在绘图程序中绘制图像并将其作为资源添加到应用程序中要容易得多


如果要在代码中绘制电池,请先在纸上或绘图程序中绘制形状。然后写下你需要做的所有绘图操作的列表——对于电池来说,它可能只是一系列的直线和曲线。提供了这些操作,从这开始可能比深入到Quartz2D更容易。

我已经使用绘图程序完成了这两项工作,并进行了编程。今天,我发现编程更简单、更有趣、更能证明未来:
对于ios分辨率的任何更改,您不必提供两张或多少张图片

图形中的一个(并非秘密)tipp是在0和1之间规范化图形。那么你就不受电池大小的影响了。 您可以通过
cGraffineTransformMakeScale()
实现这一点。 但是,您应该更改线宽以适应缩放速率:

如果按系数r进行缩放:
线宽必须为origLineWidth/r;//我花了一些时间才弄明白
其中,例如origLineWidth=1.0

然后你可以画:

  • 一个用于电池主体的矩形(例如,从x:0到0.9)
  • 一个填充的矩形电池极。(例如,从x:0.9到1.0)
  • 电池的充电状态可以使用线性梯度(或者更好的两个梯度)。从y 0(+线宽)-0.25到0.25的一个从绿色到白色的渐变 另一个从白色到深绿色:y:0.25-(1.0-线宽)

  • 这是一个非常好的工作。

    我使用绘图程序完成了这两项工作,并编程完成。今天,我发现编程更简单、更有趣、更能证明未来:
    对于ios分辨率的任何更改,您不必提供两张或多少张图片

    图形中的一个(并非秘密)tipp是在0和1之间规范化图形。那么你就不受电池大小的影响了。 您可以通过
    cGraffineTransformMakeScale()
    实现这一点。 但是,您应该更改线宽以适应缩放速率:

    如果按系数r进行缩放:
    线宽必须为origLineWidth/r;//我花了一些时间才弄明白
    其中,例如origLineWidth=1.0

    然后你可以画:

  • 一个用于电池主体的矩形(例如,从x:0到0.9)
  • 一个填充的矩形电池极。(例如,从x:0.9到1.0)
  • 电池的充电状态可以使用线性梯度(或者更好的两个梯度)。从y 0(+线宽)-0.25到0.25的一个从绿色到白色的渐变 另一个从白色到深绿色:y:0.25-(1.0-线宽)

  • 这是一个非常好的作品。

    这是我在PaintCode中画的一个小东西,可能有点小

    CGFloat factor = 0.2; // Something between 0.0 - 1.0
    
    //// Rectangle Drawing
    UIBezierPath* rectanglePath = [UIBezierPath bezierPathWithRect: CGRectMake(0.5, 0.5, 15, 5)];
    [[UIColor blackColor] setStroke];
    rectanglePath.lineWidth = 1;
    [rectanglePath stroke];
    
    
    //// Rectangle 2 Drawing -- THIS IS THE INNER "LEVEL" PART
    UIBezierPath* rectangle2Path = [UIBezierPath bezierPathWithRect: CGRectMake(2, 2, 12*factor, 2)];
    [[UIColor blackColor] setFill];
    [rectangle2Path fill];
    [[UIColor blackColor] setStroke];
    rectangle2Path.lineWidth = 1;
    [rectangle2Path stroke];
    
    
    //// Bezier Drawing
    UIBezierPath* bezierPath = [UIBezierPath bezierPath];
    [bezierPath moveToPoint: CGPointMake(15.52, 1.5)];
    [bezierPath addCurveToPoint: CGPointMake(17.04, 2.97) controlPoint1: CGPointMake(16.64, 1.49) controlPoint2: CGPointMake(17.05, 1.76)];
    [bezierPath addCurveToPoint: CGPointMake(15.52, 4.5) controlPoint1: CGPointMake(17.02,         4.16) controlPoint2: CGPointMake(17.05, 4.48)];
    [bezierPath addCurveToPoint: CGPointMake(15.52, 1.5) controlPoint1: CGPointMake(15.55, 4.48) controlPoint2: CGPointMake(15.47, 1.49)];
    [bezierPath closePath];
    [[UIColor blackColor] setFill];
    [bezierPath fill];
    

    这是我在PaintCode中画的一个小东西,可能有点小

    CGFloat factor = 0.2; // Something between 0.0 - 1.0
    
    //// Rectangle Drawing
    UIBezierPath* rectanglePath = [UIBezierPath bezierPathWithRect: CGRectMake(0.5, 0.5, 15, 5)];
    [[UIColor blackColor] setStroke];
    rectanglePath.lineWidth = 1;
    [rectanglePath stroke];
    
    
    //// Rectangle 2 Drawing -- THIS IS THE INNER "LEVEL" PART
    UIBezierPath* rectangle2Path = [UIBezierPath bezierPathWithRect: CGRectMake(2, 2, 12*factor, 2)];
    [[UIColor blackColor] setFill];
    [rectangle2Path fill];
    [[UIColor blackColor] setStroke];
    rectangle2Path.lineWidth = 1;
    [rectangle2Path stroke];
    
    
    //// Bezier Drawing
    UIBezierPath* bezierPath = [UIBezierPath bezierPath];
    [bezierPath moveToPoint: CGPointMake(15.52, 1.5)];
    [bezierPath addCurveToPoint: CGPointMake(17.04, 2.97) controlPoint1: CGPointMake(16.64, 1.49) controlPoint2: CGPointMake(17.05, 1.76)];
    [bezierPath addCurveToPoint: CGPointMake(15.52, 4.5) controlPoint1: CGPointMake(17.02,         4.16) controlPoint2: CGPointMake(17.05, 4.48)];
    [bezierPath addCurveToPoint: CGPointMake(15.52, 1.5) controlPoint1: CGPointMake(15.55, 4.48) controlPoint2: CGPointMake(15.47, 1.49)];
    [bezierPath closePath];
    [[UIColor blackColor] setFill];
    [bezierPath fill];
    

    “任何指针都是有用的”-这里是:
    (void*)0xdeadbeef
    使用png绘制电池的轮廓。然后用一个可调整大小的彩色矩形覆盖以填充轮廓。(彩色矩形只需要是一个UIView,您可以设置背景颜色,然后调整其边界或边框。)@H2CO3-显然他的说法是错误的。“任何指针都是有用的”-这里是:
    (void*)0xdeadbeef
    使用png绘制电池的轮廓。然后用一个可调整大小的彩色矩形覆盖以填充轮廓。(彩色矩形只需是一个UIView,您可以设置其背景色,然后调整其边界或边框。)@H2CO3-显然他的说法是错误的。问题是我想根据电池电量填充电池……使电池内部透明,然后将电池图像用作彩色矩形顶部的遮罩。或者,在图像上方绘制彩色矩形。问题是我想根据电池电量填充电池…使电池内部透明,然后将电池图像用作彩色矩形上方的遮罩。或者,在图像顶部绘制彩色矩形。不确定您所说的
    CGTranformationScale()
    是什么意思。你是说
    CGAffineTransformMakeScale()
    ?是的,谢谢,我不是活的编译器;-)我会更新Funnier吗?也许你的意思是“更有趣”?更有趣的是->“它让你笑得更多。”不确定你所说的
    CGTranformationScale()
    是什么意思。你是说
    CGAffineTransformMakeScale()
    ?是的,谢谢,我不是活的编译器;-)我会更新Funnier吗?也许你的意思是“更有趣”?更有趣->“它让你笑得更多。”