本文讲通过一个自定义按钮来讲解自定义控件中的自定义属性的2种实现方式。
首先,本AutoButton实现功能是按钮的文字可以根据自定义的行数对文字进行自动缩放,例如maxLines = 2,那么本按钮无论多少文字,最多只显示2行,当超出2行则字体会进行自动缩放,然后再重新mesure。
1、方式一,直接在引用的自定义控件中设置自定义属性。
贴上代码如下:
package com.example.kingsoft.CustomWidget;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.res.TypedArray;
import android.os.Debug;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.widget.Button;
import com.example.kingsoft.CustomAdapter.R;
/**
* 自定义属性MaxLine:
* <AutoAdjustButton
* MaxLine="1"
* android:layout_width = "wrap_content"
* android:layout_height = "wrap_content"/>
*
*/
@SuppressLint("AppCompatCustomView")
public class AutoAdjustButton extends Button {
private final float FONT_ACCURACY_SIZE = 2f;
private float mDefaultTextSize;
private int mMaxLine = 2;
public AutoAdjustButton(Context context) {
this(context, null);
}
public AutoAdjustButton(Context context, AttributeSet attrs) {