可能性のある複製:
Android親の寸法に基づいてビューをサイズ設定する方法
getMeasuredWidth()
およびgetMeasuredHeight
を使用するにはどうすればよいですか?常に0を返します。これとgetHeight()
とgetWidth()
の違いは何ですか?
カスタムビューの高さと幅を取得するソリューションを取得しました。
@Override
protected void onSizeChanged(int xNew, int yNew, int xOld, int yOld){
super.onSizeChanged(xNew, yNew, xOld, yOld);
viewWidth = xNew;
viewHeight = yNew;
}
私の場合はうまくいきます。
申し訳ありませんが、この質問はすでに尋ねられています。私はここで答えを見つけました- サイズの設定方法Android親の寸法に基づいたビュー
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
int parentHeight = MeasureSpec.getSize(heightMeasureSpec);
this.setMeasuredDimension(parentWidth, parentHeight);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
それらをコンストラクター内で取得しようとしないでください。 onDraw()
メソッドで呼び出してみてください。
次の方法を使用して、ビューの幅と高さを取得できます。たとえば、
int height = yourView.getLayoutParams().height;
int width = yourView.getLayoutParams().width;
これにより、XMLレイアウトで指定されたビューの変換された値が得られます。
高さの指定値がXMLで53dpの場合、整数として変換された値を80として取得します。
私はgetMeasuredWidth()
とgetMeasuredHeight()
getHeight()
とgetWidth()
の周りにも長い間行方不明になりました..........後でonSizeChanged()
メソッドが本当に役立つことがわかりました。
新しいブログ投稿:Android http://syedrakibalhasan.blogspot.com/2011/02/how-toでcustomViewの幅と高さの寸法を取得する方法(ビューを拡張する方法) -get-width-and-height-dimensions.html
getHeight()
とgetMeasuredHeight()
の違いは、最初のメソッドがView
の実際の高さを返し、2番目のメソッドがView
の子のサマリーの高さを返すことです。 。つまり、getHeight()
はビューの高さを返し、getMeasuredHeight()
はこのビューがすべての要素を表示するのに必要な高さを返します
Getheightは高さを取得し、getwidthは幅を取得します。しかし、これらのメソッドをすぐに呼び出しています。 oncreateまたはonresumeで呼び出している場合、ビューはまだ描画されていません。ビューが描画された後に呼び出す必要があります。