您的位置:首页 > 移动开发 > Android开发

android获取自己定义控件位置坐标,屏幕尺寸,标题栏,状态栏高度

2017-06-08 14:44 671 查看


android获取自己定义控件位置坐标,屏幕尺寸,标题栏,状态栏高度

1.获取自己定义控件height

在本Activity中获取当前Activity中控件的height:

Button button = (Button)findViewById(R.id.button);
int buttonHeight = button.getHeight();


在Activity中获取其它xml文件里控件的height:

LayoutInflater factorys = LayoutInflater.from(当前类.this);
final View textEntryView = factorys.inflate(R.layout.你要获取的还有一个XML, null);
TextView y_type = (TextView) textEntryView.findViewById(R.id.控件ID);
int textHeight = y_type.getHeight();
或者

LayoutInflater inflater = (LayoutInflater) context.getSystemService(LAYOUT_INFLATER_SERVICE);
final View layout = inflater.inflate(R.layout.my_kebiao_setting,null);
TextView y_type = (TextView)findViewById(R.id.控件ID);
int textHeight = y_type.getHeight();


2.获取屏幕尺寸:

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int screenWidth=metrics.widthPixels;            //屏幕宽度
int .screenHeight=metrics.heightPixels;        //屏幕高度


这段代码能够插入到Activity的onCreate()函数中。

3.获取标题栏、状态栏高度:

Rect rect = new Rect();
Window win = this.getWindow();
win.getDecorView().getWindowVisibleDisplayFrame(rect);
int statusBarHeight = rect.top;
int contentViewTop = win.findViewById(Window.ID_ANDROID_CONTENT).getTop();
int titleBarHeight = contentViewTop - Variable.statusBarHeight;
//statusBarHeight为状态栏高度,titleBarHeight为标题栏高度


getLocationOnScreen 计算该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起。也就是包含了通知栏的高度)//获取在当前屏幕内的绝对坐标

getLocationInWindow 计算该视图在它所在的widnow的坐标x。y值,//获取在整个窗体内的绝对坐标

getLeft , getTop, getBottom, getRight, 这一组是获取相对在它父亲里的坐标

int[] location = new  int[2] ;
view.getLocationInWindow(location); //获取在当前窗体内的绝对坐标
view.getLocationOnScreen(location);//获取在整个屏幕内的绝对坐标
location [0]--->x坐标,location [1]--->y坐标
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐