android 获取控件屏幕位置 动态添加 视图
2013-09-14 13:56
489 查看
Android中getLocationOnScreen和getLocationInWindow
int[] location = new int[2] ;
/**获取在当前窗口内的绝对坐标,getLeft , getTop, getBottom, getRight, 这一组是获取相对在它父窗口里的坐标。*/
view.getLocationInWindow(location);
//获取在整个屏幕内的绝对坐标,注意这个值是要从屏幕顶端算起,也就是包括了通知栏的高度。
view.getLocationOnScreen(location);
其中 location [0]代表x坐标,location
[1] 代表 坐标。
所以在需要确定组件在父窗体中的坐标时,使用getLocationInWindow,需要获得组件在整个屏幕的坐标时,使用getLocationOnScreen。
这里要注意虽然getLocationOnScreen是获取组件在屏幕中的坐标,但如果我们想拿到这个坐标,并且在这个坐标附近再添加一个组件时,直接使用拿到的坐标来建立新的组件是达不到效果的。
View itemView = userManagerView.getListView().getChildAt(j);// 获取列表子项
int[] location =newint[2];
itemView.getLocationOnScreen(location);
ImageView image =newImageView(getContext());
image.setBackgroundResource(R.drawable.operator);
if(GlobalData.loginState()){
params=newAbsoluteLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT, location[0]-15, location[1]-95);
}else{
params=newAbsoluteLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT, location[0]-15, location[1]-25);
}
image.setLayoutParams(params);
在代码中,我想根据itemVIew的坐标来绘制一个新的ImageView控件,但如果整个界面没有父容器时,拿到的坐标是可以直接使用的,而当前界面上有父容器,或者有与其平行的界面时,坐标是有偏移的,所以我加上了有些判断处理,根据不同的布局,适当的调整下坐标的偏移量
------------------------------------------------------------------------------------------------------------------
项目中遇到的情况是在初始化就展开的ExpandableListView的第一组第一个控件上添加一个
WindowManager 导航
注:WindowManager
的视图是包含自己画的继承自 View 的类
View
view = mExpandableListView.getChildAt(1).findViewById(R.id.xxxxxx);
就找到了控件
然后计算位置添加视图 。。。巴拉巴拉
相关文章推荐
- android获取自己定义控件位置坐标,屏幕尺寸,标题栏,状态栏高度
- Android获取动态添加控件的Id
- Android动态添加控件约束位置
- android中获取控件在屏幕和窗口的位置。
- Android 获取控件相对于屏幕位置
- android获取控件位置坐标,屏幕尺寸,标题栏,状态栏高度
- Android获取控件位置坐标,屏幕尺寸,标题栏,状态栏高度
- android获取控件位置坐标,屏幕尺寸,标题栏,状态栏高度
- android动态添加控件并设置位置样式
- android动态获取控件、屏幕高度等信息的方法
- android 获取屏幕的高度和宽度、获取控件在屏幕中的位置、获取屏幕中控件的高度和宽度
- android动态加载控件(LinearLayout)并获取动态添加的EditText里的值
- android 获取控件在屏幕中位置
- Android获取控件在手机屏幕上的位置
- Android 屏幕适配攻略(四)获取手机屏幕的相关信息 与动态设置控件的大小
- android获取屏幕控件位置问题
- 未能加载视图状态。正在向其中加载视图状态的控件树必须与前一请求期间用于保存视图状态的控件树相匹配。例如,当以动态方式添加控件时,在回发期间添加的控件必须与在初始请求期间添加的控件的类型和位置相匹配。
- android 获取控件在屏幕中的位置(坐标)
- 未能加载视图状态。正在向其中加载视图状态的控件树必须与前一请求期间用于保存视图状态的控件树相匹配。例如,当以动态方式添加控件时,在回发期间添加的控件必须与在初始请求期间添加的控件的类型和位置相匹配
- android获取控件位置坐标,屏幕尺寸,标题栏,状态栏高度