Codename One:如何缩小图像大小以适应对话框?

时间:2017-03-23 14:39:06

标签: codenameone

我有一段Codename One代码在对话框中显示图像(由用户通过选择文件或拍照提供):

private void showConfirmUploadDialogBox(String photoFilePathString) throws IOException {
    Image photoImage = Image.createImage(photoFilePathString);
    ScaleImageLabel scaleImageLabel = new ScaleImageLabel(photoImage);
    Dialog confirmUploadDialog = new Dialog();
    Button cancelButton = Screen.getCancelButton(confirmUploadDialog);
    Button confirmBecomeInfluencerButton = getConfirmUploadButton(confirmUploadDialog, photoFilePathString);
    confirmUploadDialog.setTitle("Confirm Upload");
    confirmUploadDialog.add(scaleImageLabel);
    confirmUploadDialog.add(cancelButton);
    confirmUploadDialog.add(confirmBecomeInfluencerButton);
    confirmUploadDialog.showDialog();
}

问题是用户可以选择一张非常大的照片并且它会遮挡整个对话框或屏幕(并且它不可滚动)。

我想通过自动将图像按比例缩小到约束大小来解决这个问题,比如说max。高度(设备的)高度的2/3。我该怎么做呢? (我尝试过setHeight或使用TableLayout约束,但它不起作用。)

谢谢!

1 个答案:

答案 0 :(得分:1)

我通过添加:

解决了这个问题
    int displayHeight = Display.getInstance().getDisplayHeight();
    Image scaledPhotoImage = photoImage.scaled(-1, displayHeight / 2);
    ScaleImageLabel scaleImageLabel = new ScaleImageLabel(scaledPhotoImage);