首页 文章

横向模式下URLImage的占位符缩放问题

提问于
浏览
2

我将占位符缩放到屏幕大小,如下所示 . 但是如果它首先在纵向模式下观看,它只占用屏幕并且不能以横向模式覆盖整个屏幕 . 如果在横向模式下第一次观看,则它在纵向模式下看起来比屏幕尺寸大 .

我该如何解决这个问题 . 我检查了PropertyCross演示,同样存在问题 .

private EncodedImage largePlaceholder;

protected void initVars(Resources res) {
    Image tmp = Image.createImage(Display.getInstance().getDisplayWidth(), Display.getInstance().getDisplayWidth() / 6 * 3, 0);
    largePlaceholder = EncodedImage.createFromImage(tmp, false);
}

findMainImg(f).setIcon(URLImage.createToStorage(largePlaceholder, getMainImg + "_0_ y", getMainImg, URLImage.RESIZE_SCALE_TO_FILL));

更新:

int sizethumb = 0;
int sizethumb1 = 0;
if (responsesImg.size() > 0) {

    sizethumb = largePlaceholder.getWidth();
    sizethumb1 = largePlaceholder.getHeight();
    findMainImg().setPreferredSize(new Dimension(sizethumb, sizethumb1));

    findMainImg(f).getAllStyles().setBgImage(URLImage.createToStorage(largePlaceholder, newsImgFilename + "_0_ y", responsesImg.get(0).get("image_url"), URLImage.RESIZE_SCALE));

    mainImageImgViewer = findMainImg(f).getAllStyles().getBgImage();
    System.out.println("beck0 " + mainImageImgViewer); //it gives null

2 回答

  • 1

    我建议将其设置为样式的bg图像,并将背景行为设置为 SCALE_TO_FILLSCALE_TO_FIT .

  • 1

    您正在使用屏幕大小生成占位符图像,并且“横向”中的屏幕宽度大于“纵向” .

    如果您想使图像响应,则必须添加方向更改侦听器,如果您来自纵向,则将下载具有不同大小的另一个图像,反之亦然 .

    private EncodedImage largePlaceholderPortrait;
    private EncodedImage largePlaceholderLandscape;
    private boolean isPortrait = Display.getInstance().isPortrait();
    
    protected void initVars(Resources res) {
        Image tmp = Image.createImage(Display.getInstance().getDisplayWidth(), Display.getInstance().getDisplayWidth() / 6 * 3, 0);
        Image tmp2 = Image.createImage(Display.getInstance().getDisplayHeight(), Display.getInstance().getDisplayHeight() / 6 * 3, 0);
        largePlaceholderPortrait = EncodedImage.createFromImage(isPortrait ? tmp : tmp2, false);
        largePlaceholderLandscape = EncodedImage.createFromImage(isPortrait ? tmp2 : tmp, false);
    }
    
    findMainImg(f).setIcon(URLImage.createToStorage(largePlaceholderPortrait,  isPortrait ? getMainImg + "_0_y_portrait" : getMainImg + "_0_y_landscape", getMainImg, URLImage.RESIZE_SCALE_TO_FILL));
    
    
    f.addOrientationListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent evt) {
            findMainImg(f).setIcon(URLImage.createToStorage(largePlaceholderPortrait,  isPortrait ? getMainImg + "_0_y_portrait" : getMainImg + "_0_y_landscape", getMainImg, URLImage.RESIZE_SCALE_TO_FILL));
        }
    });
    
    //Java 8
    f.addOrientationListener((evt) -> {
        findMainImg(f).setIcon(URLImage.createToStorage(largePlaceholderPortrait,  isPortrait ? getMainImg + "_0_y_portrait" : getMainImg + "_0_y_landscape", getMainImg, URLImage.RESIZE_SCALE_TO_FILL));
    });
    

相关问题