13

関数 activity.getWindowManager().getDefaultDisplay().getwidth() を使用したいのですが、この関数は非推奨であるという警告が表示されます

私は何をすべきか ?とにかくこの機能を使用する必要がありますか?または同じことをする他の機能がありますか?

4

7 に答える 7

28

非推奨とは、使用すべきではないことを意味しますが、互換性の理由からまだ存在しています。

代わりに使用する必要があります:

Point size = new Point();
activity.getWindowManager().getDefaultDisplay().getSize(size);
int width = size.x;
int height = size.y;
于 2013-02-25T12:59:42.200 に答える
2

DisplayAPI リファレンスから:

int getWidth()
This method was deprecated in API level 13. Use getSize(Point) instead.

つまり、 をインスタンス化しPoint、 に渡し、そこからgetSize()を取得しますx

于 2013-02-25T12:58:06.957 に答える
2

@Deprecated アノテーションが付けられたプログラム要素は、通常、危険である、またはより良い代替手段が存在するという理由で、プログラマーが使用することを思いとどまらせる要素です。非推奨のプログラム要素が非推奨のコードで使用またはオーバーライドされると、コンパイラは警告を発します。

これこれこれこれこれと見て…………

于 2013-02-25T12:58:29.517 に答える
1

メソッド名にカーソルを合わせ、を押しF2て最新のAPIに関する情報を取得します。(Eclipseを使用していると仮定します)

于 2013-02-25T12:59:48.900 に答える
1

非推奨の関数とは、より優れた新しい代替関数が導入された関数であり、将来的には新しい API でサポートされなくなる可能性があります。ただし、有効期限が切れるまでに時間がかかるため、安心して使用してください。

于 2013-02-25T12:58:02.587 に答える
1

試す:

WindowManager windowmanager = (WindowManager) this.getContext()
                              .getSystemService(Context.WINDOW_SERVICE);

と:

Display display = windowmanager.getDefaultDisplay();

Point size = new Point();
try {
    display.getRealSize(size);
} catch (NoSuchMethodError err) {
    display.getSize(size);
}
int width = size.x;
int height = size.y;

または:

DisplayMetrics displayMetrics = new DisplayMetrics();
windowmanager.getDefaultDisplay().getMetrics(displayMetrics);
int deviceWidth = displayMetrics.widthPixels;
int deviceHeight = displayMetrics.heightPixels;
于 2017-02-04T08:51:41.470 に答える
0

正しい方法は、SDKのバージョンを確認することです。それに応じて、非推奨の関数を使用することも、Pointを使用して実行することもできます。以下を参照してください。非推奨の.getWidthをディスプレイで使用しても安全ですか

于 2013-02-25T12:59:45.843 に答える