Definir o tamanho do ImageView em px no tempo de execução
Quero colocar 8 polegares de imagem em uma linha horizontal, usando toda a largura disponíve
As imagens são recuperadas de um serviço da web que permite especificar as dimensõe
Eu tentei o seguinte:
int widthPx = container.getWidth();
LinearLayout thumbs = (LinearLayout)curView.findViewById(R.id.thumbs);
for(int i=0; i<pics.length; i++) {
ImageView iv = new ImageView(mContextt);
int thumbSize = widthPx / 8;
try {
String url = "http://someurl/" + pics[i] + "&width=" + thumbSize + "&height=" + thumbSize;
URL imgUrl = new URL(url);
Drawable imgD = Drawable.createFromStream(imgUrl.openStream(), "src");
iv.setImageDrawable(imgD);
}
catch (Exception e) {
Log.e(TAG, "loading image failed");
e.printStackTrace();
}
thumbs.addView(iv);
}
As miniaturas LinearLayout têm android: layout_width = "fill_parent set. As miniaturas produzidas por esse código são significativamente menores que 1/8 da largura. Por que isso? Qual seria a maneira correta?
Atualizar
Este código está dentro onCreateView de um fragmento. Embora meu valor de largura seja calculado com base na visualização raiz e esteja correto, thumbs.getWidth () retorna 0, embora a exibição tenha sido inflada antes e também deva ter uma largura de 480 porque o layout_width está definido como fill_parent. Não tenho certeza se isso é um problema.
Minha suposição está correta de que o layout dos ImageViews criados está definido como wrap_content por padrão? Caso contrário, como definir isso com código Java?