2017-05-15 58 views
1

您好我想設置的Android自定義按鈕setMinHeight和setMaxHeightsetMinHeight和setMaxHeight android中自定義視圖

我在圖書館項目和SDK(庫項目)的用戶的Android按鈕控件可以使用該自定義按鈕的但我想把限制,按鈕的最小尺寸必須是200dp和按鈕的最大高度不能超過350dp我如何實現自定義視圖按鈕自定義類?

嘗試搜索很多線程,但還不確定。

public class MyCustomButton extends android.widget.Button { 

    public MyCustomButton(Context context) { 
     super(context); 
     applyDefaults(null); 
    } 

    public MyCustomButton(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     applyDefaults(attrs); 
    } 

    public MyCustomButton(Context context, AttributeSet attrs, int defStyleAttr) { 
     super(context, attrs, defStyleAttr); 
     applyDefaults(attrs); 
    } 

    @TargetApi(Build.VERSION_CODES.LOLLIPOP) 
    public MyCustomButton(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { 
     super(context, attrs, defStyleAttr, defStyleRes); 
     applyDefaults(attrs); 
    } 

    private void applyDefaults(AttributeSet attrs) { 

     String height = attrs.getAttributeValue("http://schemas.android.com/apk/res/android", "layout_height"); 
     String width = attrs.getAttributeValue("http://schemas.android.com/apk/res/android", "layout_width"); 

     Log.e("MVYAS=======", "height===" + height); 
     Log.e("MVYAS=======", "width===" + width); 

     setUpButtonForLoginOrLogout(); 
     setAllCaps(false); 
     setMinHeight(getResources().getDimensionPixelSize(R.dimen.mid_button_min_height)); 
     setMinWidth(getResources().getDimensionPixelSize(R.dimen.mid_button_min_width)); 
     setMaxHeight(getResources().getDimensionPixelSize(R.dimen.mid_button_max_height)); 
     setMaxWidth(getResources().getDimensionPixelSize(R.dimen.mid_button_max_width)); 

    } 

} 

,同時使用進layout.xml文件

<com.example.library.widget.MyCustomButton 
     android:id="@+id/my_button" 
     android:layout_width="153dp" 
     android:layout_height="57dp" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_alignWithParentIfMissing="true" 
     android:layout_margin="10dp" 
     styleButton:mobileid="inverted"/> 

在這裏用戶不應該能夠創建按鈕高度57dp作爲其比所需的按鈕高度低。

通過添加setMinHeight()setMaxHeight把限制()劑量不起作用。

我該如何做到這一點。你的幫助表示讚賞

在此先感謝。

回答

0

就在MyCustomButtom類中添加下面這兩種方法,並嘗試:

@Override 
public void setMinimumHeight(int minHeight) { 
    super.setMinimumHeight(minHeight); 
} 

@Override 
public void setMinHeight(@Px int minHeight) { 
    super.setMinHeight(minHeight); 
} 

還有一件事,在applyDefaults()函數中添加以下行。

setMinimumHeight(getResources().getDimensionPixelSize(R.dimen.mid_button_min_height));