这是我的代码
onCreate()
{
img = (ImageView)findViewById(R.id.img);
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int w = size.x;
int h = w * (9/16);
img.getLayoutParams().height = h;
img.getLayoutParams().width = w;
img.requestLayout();
//The rest of the code spawns a new thread and downloads an image for the image view.
}
是的,我也试过使用FrameLayout Params(因为我的ImageView在FrameLayout中),像这样的img.setLayoutParams(new FrameLayout.LayoutParams(w,h)),没有用
我试图做的是无论下载的图像/图像大小,我想创建一个w:h = 16:9比例的ImageView。我的逻辑有什么问题?我也试过做一个img.requestLayout(),没有用,把代码移到onAttachWindow(),没用。问题出在这里?非常感谢任何帮助。谢谢。
答案 0 :(得分:1)
您的代码似乎唯一的问题是这一行:
int h = w * (9/16);
(9/16)
作为整数除法执行,因此导致0
。将其更改为:
int h = (int)(w * 9f / 16f);