Android 自定义 UI 代码在更改 SDK 时无法绘制

Android custom UI code fails to draw when SDK is changed

我正在使用 http://mindtherobot.com/blog/272/android-custom-ui-making-a-vintage-thermometer/ 中的代码作为一些自定义 UI 代码的基础。原代码的AndroidManifest.xml包含代码如下:

<application>
...
</application>
<uses-sdk
    android:minSdkVersion="3"
/>

我修改为:

<uses-sdk
    android:minSdkVersion="18"
    android:targetSdkVersion="19"
/>
<application>
...
</application>

手画不出来。背景 canvas 和 handScrew 一样绘制得很好(尽管它的颜色看起来不正确)。有什么问题?我需要更新 SDK,因为我将使用一些仅在较新的 SDK 中可用的 API。

另请注意,我将 <uses-sdk> 内容移到了 <application> 上方,否则会出现警告。如果我将 <uses-sdk> 的东西留在 <application> 下面,那么任何 SDK 版本 'seems' 都可以工作并且手画正确。 'Seems' 在引号中,因为它可能无法正常工作。

如果 <uses-sdk> 东西放在 <application> 上面,minSdkVersion="13" 是最高的。

当我尝试 运行 我在 Lollipop 上的应用程序时发生了另一个错误,其中 drawTextOnPath() 调用不起作用(而在 KitKat 上它运行良好)。我在这里找到了问题和解决方法:Canvas.drawTextOnPath(...) not working on Lollipop。此解决方案也适用于此 drawPath() 问题。