zoukankan      html  css  js  c++  java
  • 自己定义View-2-重写onMeasure

    效果图

    这里写图片描写叙述

    布局文件

    <?xml version="1.0" encoding="utf-8"?

    > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="100dp" android:background="#003839" android:gravity="center" android:visibility="visible" android:text="SECOND"/> <com.pengkv.apple.weight.FirstView android:layout_width="wrap_content" android:visibility="visible" android:background="#888787" android:layout_height="wrap_content"/> </LinearLayout>

    View代码

    public class FirstView extends LinearLayout {
    
        public FirstView(Context context) {//代码实例化的时候调用
            super(context);
        }
    
        public FirstView(Context context, AttributeSet attrs) {//布局文件引用的时候调用
            super(context, attrs);
        }
    
        public FirstView(Context context, AttributeSet attrs, int defStyleAttr) {//自己定义属性值的时候调用
            super(context, attrs, defStyleAttr);
        }
    
    
        @Override
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    //        super.onMeasure(widthMeasureSpec,heightMeasureSpec);
            setMeasuredDimension(measureSpec(widthMeasureSpec),measureSpec(heightMeasureSpec)); //重測尺寸
        }
    
        public int measureSpec(int measureSpec){
            int result=0;
            int specMode=MeasureSpec.getMode(measureSpec);//获取測量模式
            int specSize=MeasureSpec.getSize(measureSpec);//获取測量尺寸
    
            if (specMode==MeasureSpec.EXACTLY){//精确模式:包含准确设置dp值和match_parent
                result=specSize;
            }else {
                result=400;//默认设置的尺寸
                if (specMode==MeasureSpec.AT_MOST){
                    result=Math.min(result,specSize);
                }
            }
            return result;
        }
    }
  • 相关阅读:
    Oracle 10g RAC下如何删除listener
    使用Jumpstart安装Solaris时,如何确定boot使用的网卡MAC地址
    强大的firebug
    outlook 办公技巧总结
    (转)谈谈防止重复点击提交
    cakephp中实现csv文件导出
    JAVA中获取路径
    web项目修改名称问题
    Extjs插入图片
    Oracle脚本笔记
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/7382779.html
Copyright © 2011-2022 走看看