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

 更新时间:2013年06月19日 15:15:50   作者:  
我需要的设置控件相对屏幕左上角的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);
}
}
您可能感兴趣的文章:

相关文章

  • Android 绕过反射黑名单的方法

    Android 绕过反射黑名单的方法

    这篇文章主要介绍了Android 绕过反射黑名单的方法,帮助大家更好的理解和使用Android,感兴趣的朋友可以了解下
    2021-02-02
  • Android Selector和Shape的使用方法

    Android Selector和Shape的使用方法

    本文介绍下背景选择器、文字颜色选择器、背景渐变器的实现。结合Shape来实现背景渐变效果。或者只是以color代替drawable作为背景选择器的元素
    2013-06-06
  • Android编程设计模式之命令模式详解

    Android编程设计模式之命令模式详解

    这篇文章主要介绍了Android编程设计模式之命令模式,详细分析了命令模式的概念、功能、使用场景、用法及相关操作注意事项,需要的朋友可以参考下
    2017-12-12
  • Android编程实现变化的双重选择框功能示例

    Android编程实现变化的双重选择框功能示例

    这篇文章主要介绍了Android编程实现变化的双重选择框功能,结合实例形式分析了Android双重选择框功能的样式布局与功能实现技巧,需要的朋友可以参考下
    2017-10-10
  • Android自定义控件实现支付宝记账饼图

    Android自定义控件实现支付宝记账饼图

    这篇文章主要为大家详细介绍了Android自定义控件实现支付宝记账饼图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • Android 安全加密:消息摘要Message Digest详解

    Android 安全加密:消息摘要Message Digest详解

    本文主要介绍Android安全加密消息摘要Message Digest,这里整理了详细的资料,并说明如何使用Message Digest 和使用注意事项,有需要的小伙伴可以参考下
    2016-09-09
  • Android自定义日历控件实例详解

    Android自定义日历控件实例详解

    这篇文章主要为大家详细介绍了Android自定义日历控件的实现过程,具有一定的实用性和参考价值,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • android 关于webview 加载h5网页开启定位的方法

    android 关于webview 加载h5网页开启定位的方法

    今天小编就为大家分享一篇android 关于webview 加载h5网页开启定位的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Android 开发照相功能实例详解

    Android 开发照相功能实例详解

    这篇文章主要介绍了Android 开发照相功能实例详解的相关资料,需要的朋友可以参考下
    2017-04-04
  • Android实现TextView字符串关键字变色的方法

    Android实现TextView字符串关键字变色的方法

    这篇文章显示给大家介绍了字符串中关键字变色的实现方法,而后又拓展介绍了在Android中如何实现搜索关键字变色,相信对各位Android开发者们具有一定的参考借鉴价值,感兴趣的朋友们下面来一起看看吧。
    2016-10-10

最新评论