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 回答