如下图所示,怎样获取两个红框之间的距离。
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坐标系,获取坐标值,改变控件的位置
LinearLayout.LayoutParams linearParams =(LinearLayout.LayoutParams) textView.getLayoutParams(); //取控件textView当前的布局参数 linearParams.height = 20;// 控件的高强制设成20
linearParams.width = 30;// 控件的宽强制设成30
textView.setLayoutParams(linearParams); //使设置好的布局参数应用到控件