我正在尝试创建一个允许您拖动形状的应用。它适用于智能手机,但不适用于我的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
答案 0 :(得分:3)
试试这个:
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int Width = displaymetrics.widthPixels;
答案 1 :(得分:0)
方法getWidth()和getHeight()在Display中已弃用。 尝试使用DisplayMetrics。 此外,您可能希望通过在调用onMeasure()之后调用getMeasuredWidth()和getMeasuredHeight()来获取视图容器的大小,以获得更精确的视图大小。