Я потянув меня за волосы над этим, и я думаю, что я нашел этот вопрос, по крайней мере, в отношении моего приложения - это что-то делать с соотношением сторон изображения предварительного просмотра по сравнению с захваченным изображением.
В моем случае мой код искал идеальный размер предварительного просмотра на основе соотношения сторон экрана. S4 - это телефон 1080p, поэтому изображение предварительного просмотра было 1920x1080, что соответствует соотношению сторон 16: 9. Но мой код был жестко скопирован на захват изображения 1600x1200, что составляет 4: 3, потому что это все, что мне нужно. Но 1600x1200 не является одним из допустимых размеров, поддерживаемых S4.
Не задавая размер, S4 захватил 4128x3096, максимальный размер и 4: 3, но линии все еще появились. Как только я сказал фотоаппарату, чтобы захватить фотографию 16: 9, линии исчезли. В вашем случае вы можете настроить соотношение сторон предварительного просмотра.
Вот код, который может рассказать вам о доступных размерах.
List<Camera.Size> previewSizes = p.getSupportedPreviewSizes();
int i = 1;
for (Size previewSize : previewSizes) {
Log.v("DebugCamera", "previewSize " + i++ + " width: " + previewSize.width + " height: " + previewSize.height);
}