|
前言:这个问题出现在我做平板项目的时候,需要横排显示一张图片以及其他控件,如下图: 
要求图、文各占一半大小,图片的宽高比例目测是1:2。这种情况不适合把高度写死,因为iPad的屏幕大小差异有些大,高度写死图片hin容易变形,因此我们就需要动态去设置这个图片的宽高。 正题:首先我们已知图片宽度是屏幕的一半,所以我们只要获取图片的宽度,然后设置高度为宽度的1/2即可。 img.post(new Runnable() { @Override public void run() { int w = img.getWidth(); int h = w / 2; img.setLayoutParams(new LinearLayout.LayoutParams(w, h)); }
}); 这里用了post方法来延迟获取宽度,是为了防止在img自身未完成测量的时候该方法过早调用,这种情况得到的宽度为0; 附加提示:如果你的控件有margin值,此时就不管用了,可以转换为让其父控件设置padding值。
|