Android(安卓)动态获取控件的宽高,并动态设置控件宽高
16lz
2021-01-25
在Android项目开发中,为了更加好的去进行适配,某些时候就需要用到动态获取A控件的宽高,将A控件宽高的值动态设置给B控件,例如我在xml文件中将TextView和ImageView的宽高都设置为wrap_content,接下来将动态获取TextView的宽高,然后将宽高值设置给IaageView
在java代码中
//声明一个boolean,因为addOnGlobalLayoutListener会重复执行,控制它启动后只执行一次 private boolean isCompletedDraw = false; //获取TextVie控件的高度,然后设置给ImageView tvRead.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { if (!isCompletedDraw){ isCompletedDraw = true; // h就是TextView的高度,h就是TextView的宽度 int h = tvRead.getMeasuredHeight(); int w = tvRead.getMeasureWidth(); //为ImageView设置宽高 LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) ivIsRead.getLayoutParams(); params.width = w; params.height = h; ivIsRead.setLayoutParams(params); ivIsRead.setImageResource(R.drawable.shape_is_read); } } });
每日记录代码,生活会因此而美好!
更多相关文章
- Android的SurfaceView使用
- Android万能下拉刷新,上拉加载。支持自定义样式!!!
- Android(安卓)TextView实现逐字动画
- Android最火的框架系列(三)JiaoZiVideoPlayer
- 关于Android(安卓)NDK中调用第三方的动态库
- Android中的布局 Layout
- Android自定义控件系列九:从源码看Android触摸事件分发机制
- Android(安卓)AccessibilityService机制源码解析
- Android中Layout转成Java代码