关闭

自定义View

55人阅读 评论(0) 收藏 举报

自定义一个MyView继承于ViewGroup,在布局文件中引用,通过view的onMeasure()方法,可获得一些view的相关属性,如View的宽(高)度模式,宽高(单位为像素,在布局文件中给出来的),如下:

        int withMode = MeasureSpec.getMode(widthMeasureSpec);
        int withSize = MeasureSpec.getSize(widthMeasureSpec);
        int heightMode = MeasureSpec.getMode(heightMeasureSpec);
        int heightSize = MeasureSpec.getSize(heightMeasureSpec);

以上借助了MeasureSpec类,宽高模式mode的返回值(getMode获得)有三种:

  • EXACTLY:一般是设置了明确的值或者是MATCH_PARENT
  • AT_MOST:表示子布局限制在一个最大值内,一般为WARP_CONTENT
  • UNSPECIFIED:表示子布局想要多大就多大,很少使用,比如在管理端项目中就使用到了(当自定义的view是listview等类似的view时可能用此参数)

最后通过setMeasuredDimension(int width,int height)设置view的最终绘制宽高

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5031次
    • 积分:391
    • 等级:
    • 排名:千里之外
    • 原创:36篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章分类
    文章存档
    最新评论