0

getSystemService() メソッドを使用して WindowManager を取得しようとしています。ここに私が持っているコードがあります:

private int calculateZoomLevel() { 
   int ht, screenWidth; 
   DisplayMetrics displayMetrics = new DisplayMetrics();
   WindowManager winManager;
   winManager = Context.getSystemService(Context.WINDOW_SERVICE);
   winManager.getDefaultDisplay().getMetrics(displayMetrics);

   ht = displayMetrics.heightPixels;
   screenWidth = displayMetrics.widthPixels;

   double equatorLength = 40075004; 
   double widthInPixels = screenWidth;
   double metersPerPixel = equatorLength / 256; 
   int zoomLevel = 1; 
   while ((metersPerPixel * widthInPixels) > 1000) { 
       metersPerPixel /= 2; 
       ++zoomLevel;
   }
   Log.i(TAG, "zoom level is: "+ zoomLevel);
   return zoomLevel;
}

次のコードを含む行:

winManager = Context.getSystemService(Context.WINDOW_SERVICE);

私が得ているエラーは次のとおりです: タイプの不一致: オブジェクトから WindowManager に変換できません

このコードは WindowManager 型を返すと思われませんか? WindowManager の戻り値の型を取得できるようにするにはどうすればよいですか?

4

3 に答える 3

0

このようにキャストする必要があります->

winManager = (WindowManager) Context.getSystemService(Context.WINDOW_SERVICE);
于 2013-05-06T20:11:52.750 に答える