Так что я новичок в java и использую чей-то открытый исходный код для разработки Android. Я хочу использовать переменный цвет в этой программе в другом действии. Я попытался изменить void на int и затем вернуть цвет в конце кода, но это не имеет значения, и код не работает. Я смущен, потому что void не возвращает ничего, но int возвращает целое число. Мой вопрос в том, как я могу получить значение цвета переменной из этого кода и либо сохранить его в другой переменной, либо сделать сам цвет переменной, чтобы я мог использовать ее в других действиях моего приложения для Android. Вот мой код:Как изменить метод void для возврата значения в Java
public void onPreviewFrame(byte[] data, Camera camera) {
try {
Camera.Size previewSize = camera.getParameters().getPreviewSize();
int height = previewSize.height;
int width = previewSize.width;
ColorModelConverter converter = new ColorModelConverter(height, width);
int[] pixels = converter.convert(data, this.colorFormat);
int color = pickColor(pixels, height, width);
updateColorData(color);
Log.i("FRAME PREVIEW", "Color updated");
} catch (RuntimeException oops) {
// Do nothing, exception is thrown because onPreviewFrame is called after camera is released
Log.i("FRAME PREVIEW", "RuntimeException thrown into onPreviewFrame");
}
}
Также здесь ссылка GitHub для всего проекта, если это делает разницу: https://github.com/adlebzelaznog/colometer
При смене 'void' в' int', затем добавьте оператор 'return' также в методе, который возвращает значение. – YoungHobbit
'onPreviewFrame' - это обратный вызов от' android.hardware.Camera.PreviewCallback'. Не знаете, как вам удалось изменить 'void' на' int', и ваш код все еще работает – Jay