我正在尝试创建一个谷歌+喜欢的应用程序是一个包含图像的帖子。我使用框布局作为图像的容器,但图像不占用父图像的宽度,并自动缩放高度以保留android上的像素纵横比,如google plus。我可以使用css规则在浏览器上通过将图像的最大宽度设置为100%来实现此目的。
为了更好地理解这一点,请参阅下面的代码
private void loadImageArea(){
BundleContext context=getBundleContext();
UIBuilder builder=context.getUIBuilder();
Container boxHeader=(Container) builder.findByName("contentWrap", getForm());
Container imageWrap=(Container) builder.findByName("imageWrap", getForm());
Label imageLabel=new Label();
imageLabel.setUIID("ImageLabel");
Image icon=getImage();
ImageIO io;
URLImage img;
Image dst=null;
int containerWidth=Display.getInstance().getDisplayWidth()- boxHeader.getStyle().getPadding(Component.LEFT)-boxHeader.getStyle().getPadding(Component.RIGHT);
int width=icon.getWidth();
if(width>containerWidth){
Log.p("Container width: "+containerWidth);
width=containerWidth;
dst=icon.scaledWidth(width);
}
imageLabel.setIcon(dst);
imageWrap.removeAll();
imageWrap.addComponent(imageLabel);
}
1)在模拟器上,它在我计算并设置图像的缩放宽度后工作,因为父容器返回宽度为零。缩放也非常差并且像素化。我试图在双鱼座之上实现一些过滤算法以获得更好的结果,不确定性能和内存,但会尝试 2)在Android上,为什么图像不使用设置的宽度并相应地缩放。从输出中可以看出,它是集中式和缩小的。
亲切的问候!
答案 0 :(得分:0)
您可以将图像设置为bgImage,并选择选项背景行为作为适合的比例,这将保留纵横比,同时在组件的可用空间中显示整个图像。
您还可以使用Image
类的相应方法获取图像的缩放版本。