我爲Android項目實現了一個.aar庫,它提供了一些動畫等速度指示器。該庫被稱爲「SpeedometerView-1.0.1.aar」無法在Android中實例化界面,「匿名」錯誤
一切正常,它的工作。但是,我正試圖爲我的速度計實施一個標籤。我已經使用了爲這個庫找到的文檔。一個基本的例子在這裏找到:
https://github.com/ntoskrnl/AndroidWidgets
下面是教程示例代碼:
使用
導入庫到您的項目。
在您的佈局XML文件添加SpeedometerGauge如圖所示:
<com.cardiomood.android.controls.gauge.SpeedometerGauge
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:padding="8dp"
android:id="@+id/speedometer" />
配置SpeedometerGauge:
private SpeedometerGauge speedometer;
// Customize SpeedometerGauge
speedometer = (SpeedometerGauge) v.findViewById(R.id.speedometer);
// Add label converter
speedometer.setLabelConverter(new SpeedometerView.LabelConverter() {
@Override
public String getLabelFor(double progress, double maxProgress) {
return String.valueOf((int) Math.round(progress));
}
});
// configure value range and ticks
speedometer.setMaxSpeed(300);
speedometer.setMajorTickStep(30);
speedometer.setMinorTicks(2);
// Configure value range colors
speedometer.addColoredRange(30, 140, Color.GREEN);
speedometer.addColoredRange(140, 180, Color.YELLOW);
speedometer.addColoredRange(180, 400, Color.RED);
我的問題是 「添加標籤轉換器」。
當我嘗試使用我的代碼,我得到這個錯誤:
setLabelConverter (com.cardiomood.android.controls.gauge.SpeedometerGauge.LabelConverter) in SpeedometerGauge cannot be applied to (anonymous com.cardiomood.android.speedometer.SpeedometerView.LabelConverter)
這裏是我相關的代碼看起來像:
private void setCoolingIndicatorAttributes() {
coolingIndicator.setMaxSpeed(250);
coolingIndicator.setMajorTickStep(50);
coolingIndicator.setMinorTicks(3);
coolingIndicator.addColoredRange(0, 140, Color.GREEN);
coolingIndicator.addColoredRange(140, 200, Color.YELLOW);
coolingIndicator.addColoredRange(200, 250, Color.RED);
// Add label converter
coolingIndicator.setLabelConverter(new SpeedometerView.LabelConverter() {
@Override
public String getLabelFor(double progress, double maxProgress) {
return String.valueOf((int) Math.round(progress));
}
});
}
同樣,這^^^不工作。我得到我所描述的錯誤:
setLabelConverter (com.cardiomood.android.controls.gauge.SpeedometerGauge.LabelConverter) in SpeedometerGauge cannot be applied to (anonymous com.cardiomood.android.speedometer.SpeedometerView.LabelConverter)
正如你看到的,唯一不同的是在包名和類前面的單詞「匿名」。
我已經嘗試了很多方法來解決這個問題,但不成功。必須有一些非常簡單的方法來解決這個問題,因爲某種原因逃脫了我。我很感激任何意見。
謝謝!
編輯:我想我已經解決了這個:
我認爲我設法解決此問題:名字應該是SpeedometerGauge,不SpeedometerView。
所以正確的代碼是:
// Add label converter
coolingIndicator.setLabelConverter(new SpeedometerGauge.LabelConverter() {
@Override
public String getLabelFor(double progress, double maxProgress) {
return String.valueOf((int) Math.round(progress));
}
});
}
'唯一的區別是「匿名」這個詞。不,差別也在包名中:'SpeedometerGauge' vs'SpeedometerView' – 0xDEADC0DE