Android 自定义控件开发,如何获取子控件的margin的值(大神请进……)

Android的自定义容器控件的开发中,如何获取子控件的margin的值呢 ,就是使用者在子控件上写的 android:layout_marginLeft="50px",我在自定义这个容器控件的时候,如何获取容器控件内部的这个数值,也就是在onLayout中怎么写,求大神指教……

先通过getChildAt(int index)获取到子控件,再通过lp = getLayoutParams()获取到子控件的参数,lp.leftMargin就是你想要的数值追问

说的具体点吗,我也是通过getchildat(int index)获取子控件 的,然后无法得到子控件 的参数,求把后面的获取参数的代码在写的详细一点!谢谢……

追答

View child = getChildAt(0);

MarginLayoutParams lp = (MarginLayoutParams) child.getLayoutParams();

int leftMargin = lp.leftMargin;

追问

恩,可以是 ,但是,把控件的大小变大之后,里面的文字没有随着变大居中,
比如button控件,让button控件的大小变为原来的几倍的时候,里面的文字还是那么大,没有随着控件的大小变大而变大,如果把button控件变小的时候,直接就看不见里面的文字了,这个怎么回事,怎么解决啊!
3Q

追答

button里面文字的大小可以通过setTextSize()来改变,
Button btn = new Button(this);
btn.setTextSize(20); //文字大小设置为20像素
如果想文字跟着button缩放,可以将文字大小与缩放值建立对应的关系。

如果文字是固定的话,也可以直接设置成背景图片,背景图是会跟着button同步缩放的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-06-22
首先使用getChildAt或者findViewById等方式找到自己的子控件
然后控件调用getLayoutParams,获取它的布局参数
这样在返回的layoutparams 对象中就有各种margin存在
第2个回答  2020-05-31
如果是自定义的ViewGroup
需要重写以下方法,即可通过MarginLayoutParams获取margin
@Override
public LayoutParams generateLayoutParams(AttributeSet attrs) {
return new MarginLayoutParams(getContext(), attrs);
}
第3个回答  2014-03-11
1、第二排右边的2P空气开关应该是控制一根火线和一根零线。如图是控制两根火线,不对。
如果你那里的灯是380V的,就对了。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网