首先我的情况是ImageView控件在fragment中,ImageView的宽高都是屏幕宽高,还有奇怪的问题,跳转到其他页面再返回又正常了。
分析:类似以上情况的一般都是线程中赋值宽高,因为可能界面显示了,但是宽高还没赋值好。返回慢一点肯定能赋值成功了的,我的又能显示正常,跟我项目返回会重新设置ImageView图片很大关系。
直接看代码:
//不采用线程获取宽高
// ivHead.post(new Runnable() {
// @Override
// public void run() {
// ViewGroup.LayoutParams lp = ivHead.getLayoutParams();
// lp.height = ivHead.getWidth();
// ivHead.setLayoutParams(lp);
//
// }
// });
//采用直接赋值ivHead宽高
FrameLayout.LayoutParams ivHeadParam = new FrameLayout.LayoutParams(screenWidth,screenWidth);
ivHead.setScaleType(ImageView.ScaleType.CENTER_CROP);
ivHead.setLayoutParams(ivHeadParam);