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存在
然后控件调用getLayoutParams,获取它的布局参数
这样在返回的layoutparams 对象中就有各种margin存在
第2个回答 2020-05-31
如果是自定义的ViewGroup
需要重写以下方法,即可通过MarginLayoutParams获取margin
@Override
public LayoutParams generateLayoutParams(AttributeSet attrs) {
return new MarginLayoutParams(getContext(), attrs);
}
需要重写以下方法,即可通过MarginLayoutParams获取margin
@Override
public LayoutParams generateLayoutParams(AttributeSet attrs) {
return new MarginLayoutParams(getContext(), attrs);
}
第3个回答 2014-03-11
1、第二排右边的2P空气开关应该是控制一根火线和一根零线。如图是控制两根火线,不对。
如果你那里的灯是380V的,就对了。
如果你那里的灯是380V的,就对了。