Android 动态获取控件的宽高,并动态设置控件宽高

在Android项目开发中,为了更加好的去进行适配,某些时候就需要用到动态获取A控件的宽高,将A控件宽高的值动态设置给B控件,例如我在xml文件中将TextView和ImageView的宽高都设置为wrap_content,接下来将动态获取TextView的宽高,然后将宽高值设置给IaageView

<ImageView
	android:id="@+id/iv_is_read"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	/>

<TextView
	android:id="@+id/tv_read"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:layout_marginStart="4dp"
	android:text="我是个测试文本"
	android:textColor="@color/grayNine"
	android:textSize="12sp" />

在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 动态获取控件的宽高,并动态设置控件宽高

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值