1

レイアウトの幅をピクセル単位で取得したい。私はこれを試しました:

LinearLayout galleryContainer = (LinearLayout)findViewById(R.id.galleryContainerLayout);
int galleryWidth= galleryContainer.getLayoutParams().width;

galleryWidth を乾杯すると、「-1」と表示されます。

私も試しました

galleryContainer.getWidth()

しかし、最初は0になり、2回目は480(実際のサイズ)になるので、レイアウトがそのサイズに浸透する前にピクセルを取得したようです。

なんてこったい?

レイアウトの幅をピクセル単位で取得するにはどうすればよいですか? またはディップのようないくつかの正確な値?

4

3 に答える 3

3

measure()電話の前に使用getWidth()

galleryContainer.measure(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
于 2012-04-18T11:36:58.223 に答える
1

レイアウトは膨張していますが、まだ描画されていません。幅または高さを取得するには、以下のメソッドを使用する必要があります。

@Override 
public void onWindowFocusChanged(boolean hasFocus) 
{ 
     // TODO Auto-generated method stub 
     super.onWindowFocusChanged(hasFocus);
     System.out.println("...Width..."+galleryContainer.getWidth()); 
} 
于 2012-04-18T11:22:56.373 に答える
1

あなたにはわかりませんが、このようなコードも作成できます。役立つかどうかを確認してください。

Display display = ((WindowManager)context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
                        int width = display.getWidth();
                        int height = display.getHeight();

楽しむ。

于 2012-04-18T11:52:27.090 に答える