我想我正面临一个小问题。我的问题是我正在绘制一个基于 http://mindtherobot.com/blog/272/android-custom-ui-making-a-vintage-thermometer/的速度计。并且针在我拥有的所有设备上都可见,但在 HTC One X 上不可见。在检查时,我发现画布密度 (canvas.getDensity()) 返回为 0。这可能是它不可见的原因吗?还在具有相同操作系统(4.0.4)的 S3 上进行了测试。在那里工作正常。
handPath = new Path();
handPath.moveTo(0.5f, 0.5f + 0.0f);
handPath.lineTo(0.5f - 0.010f, 0.5f + 0.0f - 0.00f);
handPath.lineTo(0.5f - 0.002f, 0.5f - 0.22f);
handPath.lineTo(0.5f + 0.002f, 0.5f - 0.22f);
handPath.lineTo(0.5f + 0.010f, 0.5f + 0.0f - 0.00f);
handPath.lineTo(0.5f, 0.5f + 0.0f);
handPath.addCircle(0.5f, 0.5f, 0.05f, Path.Direction.CW);
private void drawHand(Canvas canvas) {
// if (handInitialized) {
float handAngle = degreeToAngle(handPosition);
// float handAngle = 0;
canvas.save(Canvas.MATRIX_SAVE_FLAG);
canvas.rotate(handAngle, 0.5f, 0.5f);
canvas.drawPath(handPath, handPaint);
canvas.restore();
float scale = getScaled(canvas,canvas.getWidth());
canvas.scale(scale, scale);
canvas.drawCircle(0.5f, 0.5f, 0.01f, handScrewPaint);
// }
}