Используя потрясающую реализацию ImageView от MikeOrtiz с событиями касания и масштабирования, я хотел обрезать снимок, сделанный камерой, чтобы он соответствовал зум. Используя его метод...
// Return a Rect representing the zoomed image.
RectF getZoomedRect();
... Я попытался обрезать полученное растровое изображение до размера масштабирования следующим образом:
RectF zoomCoordinates = mTouchImageView.getZoomedRect();
Bitmap croppedBitmapToOverview = Bitmap.createBitmap(
AppResources.sCurrentImage,
((int) zoomCoordinates.left),
((int) zoomCoordinates.top),
((int) zoomCoordinates.width()),
((int) zoomCoordinates.height()));
Однако при этом я получаю сообщение об ошибке «должно быть больше 0». Во время отладки я заметил, что ВСЕ значения равны 0 из-за приведения к целому числу. Однако реальные значения выглядят примерно так:
//Log.d print for each of those fields without the int cast
Left 0.34047672
Top 0.20797288
Width 0.33333334
Height 0.3429547
Итак, есть моя проблема, но я не вижу, как это исправить. Я никогда раньше не работал с растровыми изображениями или холстом, Rect и т. д.
Могу ли я изменить эти значения, или мне следует использовать другой подход?