Android 动态获取两个控件之间的距离,获取控件的坐标

如下图所示,怎样获取两个红框之间的距离。

在这里插入图片描述

1、如果这个页面是固定不动的:获取屏幕整个高度-其余不要的高度

2、把“买家秀”的坐标和“立即下单”的坐标分别查找到;将高度进行相减,则可以得到两个之间的距离)

这里对第二种方式进行演示:

private void getHeight() {
//        买家秀
        int[] viewLocation = new int[2];
        lldown.getLocationInWindow(viewLocation);
        int lldownX = viewLocation[0]; // x 坐标
        int lldownY = viewLocation[1]; // y 坐标
//        下单按钮
        int[] view_Location = new int[2];
        addressitTeadd.getLocationInWindow(view_Location);
        int addressitTeaddX = view_Location[0]; // x 坐标
        int addressitTeaddY = view_Location[1]; // y 坐标

//        买家秀到下单按钮距离
        int Height=addressitTeaddY-lldownY;
        Log.e("yxl--height",Height+"");

        int ivHeight=v_nomjxiu.getHeight();
        Log.e("yxl--ivm",ivHeight+"");

//        空白距离
       int distance= Height-ivHeight;
       Log.e("yxl---distance",distance+"");

       if (distance>=0){
           tianWeb.setVisibility(View.VISIBLE);
           LinearLayout.LayoutParams linearParams =(LinearLayout.LayoutParams) tianWeb.getLayoutParams(); //取控件textView当前的布局参数
           linearParams.height = distance;// 控件的g
           tianWeb.setLayoutParams(linearParams); //使设置好的布局参数应用到控件
       } else {
           tianWeb.setVisibility(View.GONE);
       }
    }

ps:因为图中所有的控件都放在一个Scrollview里面的,点击买家秀的时候,会回弹一下回来。这里获取到 :买家秀到下单的距离-(没有买家秀时会显示的图片高度)=空白的高度;
将这个空白高度用一个webview填充,防止点击的时候,弹一下。
记录自己开发中遇到的问题,大家可以忽略这个ps。

动态获取控件x和y轴

        @BindView(R.id.ll_down)
        LinearLayout lldown;
      //放在方法中,lldown为控件名
        int[] viewLocation = new int[2];
        lldown.getLocationInWindow(viewLocation);
        int lldownX = viewLocation[0]; // x 坐标
        int lldownY = viewLocation[1]; // y 坐标

补充

ps:1、Android中如何获取屏幕宽度和高

int screenWidth;    
int screenHeight;    
WindowManager windowManager = getWindowManager();    
Display display = windowManager.getDefaultDisplay();    
screenWidth = display.getWidth();    
screenHeight = display.getHeight();

2、获取某控件的高度getHeight()、宽度getWidth()。
android之View坐标系,获取坐标值,改变控件的位置

3、Android 动态设置控件宽高度

LinearLayout.LayoutParams linearParams =(LinearLayout.LayoutParams) textView.getLayoutParams(); //取控件textView当前的布局参数 linearParams.height = 20;// 控件的高强制设成20  

linearParams.width = 30;// 控件的宽强制设成30   

textView.setLayoutParams(linearParams); //使设置好的布局参数应用到控件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值