Масштабирование передаваемого изображения на новом экранеJAVA

Программисты JAVA общаются здесь
Anonymous
Масштабирование передаваемого изображения на новом экране

Сообщение Anonymous »

У меня есть программа на моем телефоне, которая передает информацию с экрана на автомобильную панель. Проблема в том, что передаваемое изображение не может быть масштабировано на весь экран. Изображение всегда сосредоточено по размеру экрана телефона.
Оригинальный экран изображения - это readmi Note 8 Pro Phone.
Экран автомобиля 12,3 дюйма 1920X720.private static final String TAG = "ScreenCaptureService";
private static final int WIDTH = 1920;
private static final int HEIGHT = 720;

private class ImageAvailableListener implements ImageReader.OnImageAvailableListener {
@Override
public void onImageAvailable(ImageReader reader) {

Bitmap bitmap = null;
try (Image image = mImageReader.acquireLatestImage()) {
if (image != null) {
Image.Plane[] planes = image.getPlanes();
ByteBuffer buffer = planes[0].getBuffer();
int pixelStride = planes[0].getPixelStride();
int rowStride = planes[0].getRowStride();
int rowPadding = rowStride - pixelStride * mWidth;

// create bitmap
bitmap = Bitmap.createBitmap(mWidth + rowPadding / pixelStride, mHeight, Bitmap.Config.ARGB_8888);
bitmap.copyPixelsFromBuffer(buffer);

int newWidth = mWidth * HEIGHT / mHeight;
Rect src = new Rect(0, 0, mWidth, mHeight);
Rect dst = new Rect(WIDTH/2-newWidth/2, 0, WIDTH/2+newWidth/2, HEIGHT);
new Canvas(canvas).drawBitmap(bitmap, src, dst, null);

// write bitmap
ByteArrayOutputStream os = new ByteArrayOutputStream();
canvas.compress(Bitmap.CompressFormat.JPEG, 100, os);
mProj.setData(os.toByteArray());
}

} catch (Exception e) {
e.printStackTrace();
} finally {
if (bitmap != null) {
bitmap.recycle();
}
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/795 ... new-screen

Вернуться в «JAVA»