2016-09-06 1 views
1

私は、線形レイアウトを拡張するクラス(丸いボタン)を持つモジュールを作成しています。画像ビューとテキストビューが含まれています。レイアウト幅/高さの値をカスタムビュークラスに渡す方法

ラウンドボタンビューがXMLファイルで宣言されると、layout_widthおよびlayout_heightの値が割り当てられます。私は、イメージビューの寸法が割り当てられたレイアウトの寸法に比例するようにしたい。したがって、レイアウト・ディメンションをビュー・クラスに渡して、比例ディメンションをイメージ・ビューに割り当てることはできますか?

P .:この質問は、カスタム属性を渡すことについては扱いません。しかし、android:layout_widthandroid:layout_heightをカスタムUIクラスに渡すことについては扱いません。

+0

[Android - カスタム属性を持つカスタムUI](000000000)の可能な複製 –

+1

この質問はその複製ではありません。私はカスタム属性について話していません – suku

答えて

0

私は、ビューのインスタンスを値を必要とするメソッドに渡すことでこれを解決しました。そしてgetViewTreeObserver().OnGlobalLayoutListener()を使用してください。

public void setIcon(final RoundedButton rb, final int drawableResourceId, final int position){ 
    mIconPosition = position; 

    rb.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 
     @Override 
     public void onGlobalLayout() { 
      buttonWidth = rb.getWidth(); 
      buttonHeight = rb.getHeight(); 

      //whatever needs to be done with the dimensions 
     } 
    }); 
} 

this.getViewTreeObserver().addOnGlobalLayoutListener()は、ビューのタイプを拡張していても実行できません。

関連する問題