QuickAction от Lorensius

Я пытаюсь удалить устаревший код getWidth(); из этого кода, прежде чем идти в производство. Я попробовал несколько способов, упомянутых здесь, в стеке для других классов, но, похоже, не могу заставить его работать для этого. Кто-нибудь знает, я могу получить здесь?

public class QuickAction extends PopupWindows implements OnDismissListener {
...
public void show (View anchor) {
    int screenWidth     = mWindowManager.getDefaultDisplay().getWidth();
...
}

1 ответ

Решение

Я не уверен, что вы пробовали до сих пор, но вы могли бы использовать это:

 final int version = android.os.Build.VERSION.SDK_INT;
 Display display = mWindowManager.getDefaultDisplay();
 int screenWidth;
 if (version >= 13) {
     Point size = new Point();
     display.getSize(size);
     screenWidth = size.x;
 }
 else {
     screenWidth = display.getWidth();
 }

Как javaDoc говорит метод display.getWidth() устарел в уровне API 13, поэтому вы должны использовать display.getSize(Point) вместо.

Если вам не нравятся "магические" числа, вместо 13 вы можете использовать android.os.Build.VERSION_CODES.HONEYCOMB_MR2,

Другие вопросы по тегам