我有一个使用ArrayList的方法。但是我将加速度计值作为双倍。 如何将Double转换为ArrayList,以便在我实现的方法中找到 TotalAccelermeter 的峰值。 提前致谢。 我还有其他一些问题,比如我的名单是浮动的,而我正在通过Double。
@Override
public final void onSensorChanged(SensorEvent event) {
// The light sensor returns a single value.
// Many sensors return 3 values, one for each axis.
double xx=event.values[0];
double yy=event.values[1];
double zz=event.values[2];
double TotalAccelerate=Math.round(Math.sqrt(Math.pow(xx, 2)
+Math.pow(yy, 2)
+Math.pow(zz, 2)));
sensorText.setText("Total: " + TotalAccelerate);
Log.i(DEBUG,"Total "+ TotalAccelerate);
ArrayList<Double> list = new ArrayList<Double>();
list.toArray(TotalAccelerate);
findPeaks(TotalAccelerate);
}
//Find peak values.
public static ArrayList<Float> findPeaks(List<Float> points) {
ArrayList<Float> peaks = new ArrayList<Float>();
if (points == null || points.size() < 1)
return peaks;
float x1_n_ref = 0;
int alpha = 0; //0=down, 1=up.
int size = points.size();// -1)/100;
for (int i = 0; i < size; i += 5) {
float IndexValues = points.get(i);
if (IndexValues > 140) {
float delta = x1_n_ref - IndexValues;
if (delta < 0) {
x1_n_ref = IndexValues;
alpha = 1;
} else if (alpha == 1 && delta > 0) {
peaks.add(x1_n_ref);
alpha = 0;
}
} else if (alpha == 0) {
x1_n_ref = IndexValues;
}
}
return peaks;
}
答案 0 :(得分:0)
您永远不会将TotalAccelerate值实际添加到ArrayList(列表)中。您可以使用ArrayList的add方法执行此操作:
list.add(TotalAccelerate);
正如您在帖子中提到的,调用findPeaks方法还有另一个问题。该方法需要ArrayList<Float>
,您打算将ArrayList<Double>
传递给它。替换这个:
findPeaks(TotalAccelerate);
用这个:
findPeaks(list);
您需要更改findPeaks的方法签名才能使用ArrayList<Double>
。在方法内部,如果您需要Float,则需要将值从Double转换为Float。
希望这能让你走上正轨。
答案 1 :(得分:0)
你可以试试这个
<a href="pathToYourImage/image.png">image or whaever you want</a>