自定义控件 和 自定义控件的 子控件 位置
来源:互联网 发布:姚明生涯数据 编辑:程序博客网 时间:2024/06/16 04:43
正方形的位置 是以 左上角 与右下角 确定位置
扇形 的开始点是 三点钟方向 顺时开始的
自定义控件的 子控件 位置----------------------------
/**
* 当前控件的宽高* @param widthMeasureSpec
* @param heightMeasureSpec
*/
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
if (getChildCount()>0){
View childAt = getChildAt(0);
//测量子控件
measureChild(childAt,widthMeasureSpec,heightMeasureSpec);
}
}
//这里是父控件定位子控件在父控件中的位置...布局(补得是子控件)
@Override
protected void onLayout(boolean b, int i, int i1, int i2, int i3) {
int childCount = getChildCount();//拿到容器里面子控件的数量
if (childCount>0){
View childAt = getChildAt(0);//根据角标取出里面的子控件
childAt.layout(10,10,childAt.getMeasuredWidth()+10,childAt.getMeasuredHeight()+10);
}
}
}
自定义控件的 子控件 位置----------------------------
/**
* Created by Dash on 2017/11/29.
*/
public class MeasureView extends View {
//在代码中new对象的时候使用
public MeasureView(Context context) {
super(context);
}
//在xml布局的时候调用这个构造方法
public MeasureView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
//也是在xml布局的时候使用,需要制定一个主题样式...一般来讲我们用的是默认的主题
public MeasureView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
/*public MeasureView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}*/
/**
* 测量控件的大小....如果是一个容器可以测量自己也可测量他身上的子控件
*
*
* @param widthMeasureSpec 包含了大小和模式的数值,,,,当前控件的宽度/高度....32位
* @param heightMeasureSpec
*/
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
int mode = MeasureSpec.getMode(widthMeasureSpec);
int size = MeasureSpec.getSize(widthMeasureSpec);
if (mode == MeasureSpec.EXACTLY){
//300dp......900px
//xxhdpi 1dp = 3px xhdpi 1dp = 2px hdpi 1dp = 1.5px
Toast.makeText(getContext(),"size:"+size,Toast.LENGTH_SHORT).show();
}
//在onMeasure方法中直接设置大小.....在代码里面宽度和高度都是使用像素值
//只是初步指定一个大小,最终是由这个方法确定的,如果不去设置就用最开始指定的大小
setMeasuredDimension(100,100);
}
}
- 自定义控件 和 自定义控件的 子控件 位置
- wpf自定义控件位置
- 控件自定义位置
- 用户自定义控件大小和位置
- 用户控件和自定义控件的区别
- 用户控件和自定义控件的区别
- 用户控件和自定义控件的区别 .
- 用户控件和自定义控件的区别
- MFC中控件的大小和位置自定义代码
- 自定义控件---添加子控件错误
- 自定义ListView的子控件问题
- 自定义控件和自定义属性的总结
- 自定义控件和自定义属性的总结
- 自定义控件和自定义属性
- 自定义控件--自定义控件的属性
- 自定义View和控件
- 自定义控件的自定义属性
- 自定义控件的自定义属性
- HTML5支持所有浏览器的SHIV解决方案
- C# volatile ,lock解析
- 11月总结
- 请求网络api
- WSDL 详解
- 自定义控件 和 自定义控件的 子控件 位置
- Win10+VC2015+libxml2-2.9.7 编译过程
- AndroidNDK开发日记
- Dominating---C语言自学学习笔记之函数
- java----复制文件的几种方式
- Android开发人员不得不收集的代码(持续更新中)
- Hybrid APP 混合开发模式的选择之路(二)
- CardView是在安卓5.0提出的卡片式控件
- Python建模的一些通用操作