1

次のコードを使用して、ユーザーのギャラリーから画面の表示幅/高さに一致するトリミングされた画像を選択しています (フルスクリーン アクティビティの背景として設定できるようにするため)。

    int PHOTO_WIDTH = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getWidth();
    int PHOTO_HEIGHT = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getHeight();
    Intent intent = new Intent(Intent.ACTION_PICK, null);
    intent.setType("image/*");
    intent.putExtra("crop", "true");
    intent.putExtra("outputX", PHOTO_WIDTH);
    intent.putExtra("outputY", PHOTO_HEIGHT);

これは一部のデバイスでは機能しますが、他のデバイスでは機能しません (xhpdi 密度が同じであっても)。

現在の画面比率 (ステータス バーを含み、ソフトキー ボタンの行を除く) を取得し、それを PICK インテントに設定するにはどうすればよいですか?

4

2 に答える 2

0

私は単にディスプレイの幅/高さをaspect_xaspect_yパラメータの値として使用することになりました:

Display display = getWindowManager().getDefaultDisplay();
int aspect_x = display.getWidth();
int aspect_y = display.getHeight();
于 2013-09-07T13:39:42.220 に答える