activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="300dp"
android:layout_height="fill_parent"
tools:context="com.example.sfsdf.MainActivity" >
<com.example.sfsdf.layout
android:layout_width="200dp"
android:layout_height="fill_parent"
android:text="@string/hello_world" />
</RelativeLayout>
layout.java
package com.example.sfsdf;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
public class layout extends View {
private Context context;
public layout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public layout(Context context, AttributeSet attrs) {
super(context, attrs);
this.context = context;
}
public layout(Context context) {
super(context);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// TODO Auto-generated method stub
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
int measureWidth = MeasureSpec.getSize(widthMeasureSpec);
Log.e("TAG", "" + measureWidth);
/** 当父布局、自己布局都为fill_parent时候 measureWidth输出720px */
/** 当父布局为fill_parent、自己为wrap_content时候 measureWidth输出720px */
/** 当父布局为fill_parent、自己为300dp时候 measureWidth输出300dp */
/** 当父布局为wrap_content、自己为300dp时候 measureWidth输出300dp */
/** 当父布局为wrap_content、自己为wrap_content时候 measureWidth输出720px */
/** 当父布局为wrap_content、自己为fill_parent时候 measureWidth输出720px */
/** 当父布局为300dp、自己为fill_parent时候 measureWidth输出300dp */
/** 当父布局为300dp、自己为wrap_content时候 measureWidth输出300dp */
/** 当父布局为300dp、自己为200dp时候 measureWidth输出200dp */
}
}