【问题标题】:how to get the screen size in android?如何在android中获取屏幕尺寸?
【发布时间】:2014-05-04 18:19:30
【问题描述】:

我正在用 Java 编写一个应用程序,我想在屏幕上随机放置一个按钮。 我使用了 Display.getSize(),但它为我提供了屏幕的整个大小,包括返回、主页和最近活动按钮的底部栏。所以我随机位于屏幕中的按钮通常隐藏在这个栏下。在我的计算中如何考虑这个栏?

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_hiding_buttons);

    Display display = getWindowManager().getDefaultDisplay();
    Point size = new Point();

    display.getSize(size);
    SCREEN_WIDTH = size.x;
    SCREEN_HEIGHT = size.y;

}

public void button_hideButtonClick(View view) {
    // init button location to beginning position
    view.offsetLeftAndRight(-horizonOffset);
    view.offsetTopAndBottom(-verticalOffset);

    Random r = new Random();

    // generate random pos relative to the screen
    horizonOffset = r.nextInt(SCREEN_WIDTH-view.getWidth());
    verticalOffset = r.nextInt(SCREEN_HEIGHT-view.getHeight());

    // relocate the button randomly
    view.offsetLeftAndRight(horizonOffset);
    view.offsetTopAndBottom(verticalOffset); 

}

【问题讨论】:

    标签: java android random screen


    【解决方案1】:
    DisplayMetrics dm = new DisplayMetrics();
    

    getWindowManager().getDefaultDisplay().getMetrics(dm); int 宽度=dm.widthPixels; int 高度=dm.heightPixels; int 密度=dm.densityDpi; 双wi =(双)宽度/(双)密度; 双喜=(双)高度/(双)密度; 双 x = Math.pow(wi,2); 双 y = Math.pow(hi,2); 双屏英寸 = Math.sqrt(x+y);

    解释here

    试试这个......如果它不起作用,请告诉我......也会告诉你一些其他选择......

    【讨论】:

    • 和我在onCreate方法中写的一样。它确实以像素为单位返回,但它包括屏幕底部的工具栏。
    • 您是否使用大写字母表示上下文?无论如何,它说 getWindowManager 不是它的方法...
    猜你喜欢
    • 1970-01-01
    • 2014-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-13
    • 1970-01-01
    • 2010-11-04
    • 2017-04-22
    相关资源
    最近更新 更多