Я пытаюсь создать приложение, похожее на Google+, где сообщение содержит изображение. Я использую макет коробки в качестве контейнера для изображения, но изображение не занимает ширину родителя и автоматически масштабирует высоту, чтобы сохранить соотношение сторон пикселя на 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, почему изображение не использует заданную ширину и соответственно масштабируется. Как видно из вывода, он централизован и уменьшен.
С уважением!