当前位置:  编程技术>移动开发

获取控件大小和设置调整控件的位置XY示例

    来源: 互联网  发布时间:2014-10-19

    本文导语:  网上很多人对设置控件的位置都使用view.setPadding(left, top, right, bottom) ,其实这玩意很差劲,它是设置自己本身位置的偏移,我们很少需要这种效果,我需要的设置控件相对屏幕左上角的X 、Y位置。众里寻他千百度,蓦然回首,...

网上很多人对设置控件的位置都使用view.setPadding(left, top, right, bottom) ,其实这玩意很差劲,它是设置自己本身位置的偏移,我们很少需要这种效果,我需要的设置控件相对屏幕左上角的X 、Y位置。众里寻他千百度,蓦然回首,那人却在灯火阑珊处!
代码如下:

import android.view.View;
import android.view.ViewGroup.MarginLayoutParams;
import android.widget.RelativeLayout;
/*
* 获取、设置控件信息
*/
public class WidgetController {
/*
* 获取控件宽
*/
public static int getWidth(View view)
{
int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
view.measure(w, h);
return (view.getMeasuredWidth());
}
/*
* 获取控件高
*/
public static int getHeight(View view)
{
int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
view.measure(w, h);
return (view.getMeasuredHeight());
}

/*
* 设置控件所在的位置X,并且不改变宽高,
* X为绝对位置,此时Y可能归0
*/
public static void setLayoutX(View view,int x)
{
MarginLayoutParams margin=new MarginLayoutParams(view.getLayoutParams());
margin.setMargins(x,margin.topMargin, x+margin.width, margin.bottomMargin);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(margin);
view.setLayoutParams(layoutParams);
}
/*
* 设置控件所在的位置Y,并且不改变宽高,
* Y为绝对位置,此时X可能归0
*/
public static void setLayoutY(View view,int y)
{
MarginLayoutParams margin=new MarginLayoutParams(view.getLayoutParams());
margin.setMargins(margin.leftMargin,y, margin.rightMargin, y+margin.height);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(margin);
view.setLayoutParams(layoutParams);
}
/*
* 设置控件所在的位置YY,并且不改变宽高,
* XY为绝对位置
*/
public static void setLayout(View view,int x,int y)
{
MarginLayoutParams margin=new MarginLayoutParams(view.getLayoutParams());
margin.setMargins(x,y, x+margin.width, y+margin.height);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(margin);
view.setLayoutParams(layoutParams);
}
}

    
 
 

您可能感兴趣的文章:

  • QT4 获取当前按下的控件名
  • 获取GTK控件的XWINDOW ID
  • ExtJS设置与获取radio控件的选取状态
  • .net后台获取html控件值的2种方法
  • c#获取用户控件中控件的ID的代码
  • js代码获取TreeView控件选中节点的Text和Value
  • 如何获取file控件的值!(在线等待)
  • Python获取网页编码的方法及示例代码
  • PHP数组根据值获取Key的简单示例
  • JSP 获取Spring 注入对象示例
  • Jquery获取元素的父容器对象示例代码
  • android获取当前手机号示例程序
  • bash获取当前路径示例
  • JQuery获取上传文件大小(示例)
  • 在RowCommand事件中获取索引值示例代码
  • php获取淘宝分类id(示例)
  • PHP获取php,mysql,apche的版本信息示例代码
  • 获取DataRow[]的值示例
  • php获取字段名示例分享
  • php获取文件内容最后一行示例
  • C#获取时间差的简单示例
  • python获取网页状态码示例
  • jsp页面获取服务器时间的简单调用示例
  • java正则表达式获取url的host示例
  • shell学习教程获取命令行参数示例
  • 论坛 iis7站长之家
  • jquery获取颜色在ie和ff下的区别示例介绍
  • php获取bing每日壁纸示例分享
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 怎么获取zip包内某个文件的大小?
  • scounix中获取内存信息大小的问题,急,请高手指点
  • 如何获取ftp上文件的大小?
  • java 如何获取对象实例的大小
  • ftp协议中如何获取服务器上的指定文件大小?
  • php获取文件大小的二种方法
  • 在linux系统下面如何获取各个分区或者文件夹的大小?
  • android开发中获取手机分辨率大小的方法
  • unix/linux下通过c/c++获取内存大小的方法。
  • 获取文件属性,大小,目录,创建时间等信息的函数是什么?
  • 怎样获取本地目录下某个文件的大小?
  • 求教:在Linux下的C语言中如何获取分区的剩余大小和文件的大小
  • Python获取远程文件大小的函数代码分享
  • php获取文件大小的方法
  • android 获取屏幕像素大小的正确方法
  • shell求救:获取一个文件夹下的所有文件,判断其大小
  • 在一个C/C++程序中,如何获取UNIX操作系统缓存行大小?
  • linux下使用df命令获取U盘大小的问题
  • php使用请求头信息获取远程图片大小
  • c语言获取文件大小的示例
  • java Servlet获取和设置cookie实例代码
  • linux不用命令方式读文件获取网络流量,如何使用C函数调用获取网络流量信息?
  • Python通过正则表达式获取,去除(过滤)或者替换HTML标签的几种方法
  • 关于获取在jsp上获取客户端时间的问题
  • php获取访客ip地址原理及提供七段代码供参考
  • 关于Ganglia中的gmond组件收集到的资源信息如何获取(如何获取telnet后返回的信息)
  • java获取系统路径字体、得到某个目录下的所有文件名、获取当前路径
  • 利用sender的Parent获取GridView中的当前行(获取gridview的值)
  • php获取本机ip地址 php获取远程IP地址
  • linux获取主机名后用gethostbyname() 不能获取主机ip
  • javascript 获取url参数的正则表达式(用来获取某个参数值)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3