0

参照を確認して、画面の高さと幅を取得します。以下のような私の携帯電話の高さと幅

Point p = new Point();
getWindowManager().getDefaultDisplay().getSize(p);
p.x //width 540
p.y //height 960

デモを書いたのですが、得られた値が正しくありません

import android.graphics.Point;

public class Strike {
    private StrikeView view;
    private int left = 0;
    private int top = 0;
    private Point win;
    private boolean isDown = true;
    private boolean isRight = true;

    public Strike(StrikeView view, Point win) {
        this.view = view;
        this.win = win; 
        this.left = view.getLeft();
        this.top = view.getTop();
    }

    /**
     * Set direction and refresh
     */
    public void setPostion() {
        view.setLeft(left);
        view.setTop(top);
        view.invalidate();
    }

    /**
     * calculate view direction
     */
    public void postion() {
        if (isRight) {
            if (left + 30 < win.x)
                left++;
            else {
                isRight = false;
                left--;
            }
        } else {
            if (left > 0)
                left--;
            else {
                isRight = true;
                left++;
            }
        }
        if (isDown) {
            if (top + 30 < win.y)
                top++;
            else {
                isDown = false;
                top--;
            }
        } else {
            if (top > 0)
                top--;
            else {
                isDown = true;
                top++;
            }
        }

    }

}
4

3 に答える 3

1

これが私が使用したものです(Android 2.1以降でテスト済み):

private void size() {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB_MR2) {
        size_old(getWindowManager().getDefaultDisplay());
    }
    else {
        size_new(getWindowManager().getDefaultDisplay());
    }
}

@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
private void size_new(Display display) {
    Point point = new Point();
    display.getSize(point);
            // point.x and point.y
}

@SuppressWarnings("deprecation")
private String size_old(Display display) {
    // display.getWidth() and display.getHeight()
}
于 2012-11-19T10:00:42.163 に答える
0

電話のサイズを知ることは、そのような方法を使用する価値があります...

    DisplayMetrics displaymetrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
    int height = displaymetrics.heightPixels;
    int wwidth = displaymetrics.widthPixels;
于 2012-11-19T10:27:49.977 に答える
0

これを使って:

    DisplayMetrics metrics = context.getResources().getDisplayMetrics();
    int width = metrics.widthPixels;
    int height = metrics.heightPixels;
于 2012-11-24T10:14:43.670 に答える