横向模式下URLImage的占位符缩放问题
问题描述:
我按如下方式将占位符缩放为屏幕尺寸。但是,如果首先在肖像模式下查看它,它只是拍摄屏幕,并且不以横向模式覆盖整个屏幕。如果第一次在横向模式下查看,则它会比纵向模式下的屏幕尺寸大。横向模式下URLImage的占位符缩放问题
如何解决此问题。我在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
答
我建议将其设置为风格的BG图像和设定的背景行为SCALE_TO_FILL
或SCALE_TO_FIT
。
答
您正在使用的屏幕尺寸来生成图像占位符,并在景观屏幕的宽度比纵向更大。
如果你想使图像响应,你将不得不增加方向变化监听器,如果你从人像,反之亦然未来将下载其他图像不同尺寸的景观。
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));
});
+0
感谢钻石它的工作原理,但我宁愿如果我不必使用2个图像的单个占位符。 – beck
感谢它的工作......但我在这里有一个问题。我设置了bgImage,当我想要检索bgImage(即getBgImage)时,它会给出null。这是一个错误?我更新了我在上面的问题中所做的工作 – beck
您在此期间是否调用过setUIID或类似的东西? –
不,我还没有做到这一点 – beck