0

図形をドラッグできるアプリを作ろうとしています。スマートフォンでは正常に動作しますが、私の Acer a500 タブレットでは動作しません

呼び出して高さを取得すると

ih=getWindowManager().getDefaultDisplay().getHeight()-25;

本来あるべき値の 1/3 しかない値を取得するため、sahpes を 1/3 だけ下にドラッグできます。タブレットが水平の場合、1/2 下がります。

このメソッドがタブレットの高さに対して間違った値を返すのはなぜですか??

public class cPlay extends  cBase  implements OnClickListener {
/** Called when the activity is first created. */
   @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
  //      setContentView(R.layout.play);


        int w=getWindowManager().getDefaultDisplay().getWidth()-25;
        int h=getWindowManager().getDefaultDisplay().getHeight()-25;

        BallView ballView=new BallView(this,w,h);
        setContentView(ballView);
   } // end function

   public void onClick(View v) {
       finish();

       } // end function

} // end class
4

2 に答える 2

3

これを試して:

  DisplayMetrics displaymetrics = new DisplayMetrics();
  getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
  int height = displaymetrics.heightPixels;
  int Width = displaymetrics.widthPixels;
于 2012-11-20T17:39:32.737 に答える
0

メソッド getWidth() および getHeight() は Display では非推奨です。DisplayMetrics を使用してみてください。また、ビューのより正確なサイズを取得するために、onMeasure() が呼び出された後に getMeasuredWidth() および getMeasuredHeight() を呼び出して、ビューのコンテナーのサイズを取得することもできます。

于 2012-11-20T17:12:30.227 に答える