使用UrlImage导致缩放后图像质量较差

3

我正在尝试使用Codename One创建一个应用程序,该应用程序使用RESTful Web服务下载要显示的详细信息,包括图像URL。

我认为我需要的是ScaleImageButton,其目的是具有可单击的项目列表以显示更多信息(因此有几个ScaleImageButtons)。

我目前使用的用于创建按钮的代码如下:

java.util.List<String> splitImage = tokenize(url, '/');
EncodedImage placeholder = FontImage.createMaterial(FontImage.MATERIAL_SAVE, btnStyle.getUnselectedStyle()).toEncodedImage();
URLImage image = URLImage.createToStorage(placeholder, splitImage.get(splitImage.size() - 1), url, URLImage.RESIZE_SCALE_TO_FILL);
ScaleImageButton btn = new ScaleImageButton(image);
btn.setBackgroundType(Style.BACKGROUND_IMAGE_SCALED_FILL);

这个按钮的背景图片质量非常差(每像素几毫米),尽管在更大的浏览器窗口中显示该图片。
我怎样才能让图片填充背景但同时保持其质量呢?
提前感谢。 enter image description here
1个回答

1
你正在做的是下载一个与你的占位符大小相同的图像,并通过将其应用于ScaleImageButton来放大它,而不是下载正确大小的图像。
在使用它来下载实际图像之前,请确保你的占位符图像是正确的大小。
例如:
//half the size of device width image
EncodedImage placeholder = FontImage.createMaterial(FontImage.MATERIAL_SAVE, btnStyle.getUnselectedStyle(), CN.getDisplayWidth() / 2).toEncodedImage();

谢谢您的回复。我已经尝试过了,但是图像质量仍然很差,不过现在按钮的大小与图像相同,而背景图像只是图像的一部分(裁剪以适应按钮)。 - Kieran Jennings
我正在使用Mac,但我也已经构建了该应用程序并在我的iPhone上尝试过它,结果相同。 - Kieran Jennings
因为图片一旦下载就会被缓存。在您的iPhone上,您需要删除先前的应用程序以删除其缓存的图像,然后重新安装。在Mac上,您可以通过访问硬盘驱动器来执行相同的操作。 - Diamond
我已经解决了像素化问题,但现在图像使按钮变得太大了,我希望背景图像像问题中的图像一样被裁剪。我该如何实现这个? - Kieran Jennings
让我们在聊天中继续这个讨论 - Kieran Jennings
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接