0

我想從服務器下載圖像並將其顯示在圖像視圖上。 我主要關注的是不要損壞不同設備上的圖像質量(具有不同的屏幕尺寸,分辨率和密度)優化圖像尺寸以便在圖像視圖上顯示質量

我想弄清楚如何測量我需要的圖像大小以適合圖像視圖的質量

爲了這個問題, 說我有一個100dp * 100dp大小的圖像視圖爲了保持hdpi,xhdpi,xxhdpi和xxxhdpi設備的質量,我需要下載哪些圖像分辨率?

我已經知道如何獲取設備

DisplayMetrics displaymetrics = new DisplayMetrics(); 
    WindowManager windowManager = (WindowManager) m_context.getSystemService(Context.WINDOW_SERVICE); 
    windowManager.getDefaultDisplay().getMetrics(displaymetrics); 
    int height = displaymetrics.heightPixels; 
    int wwidth = displaymetrics.widthPixels; 

    Log.d(Utils.TAG,"displaymetrics : Hieght: "+ height + " width: " + wwidth); 


    switch (m_context.getResources().getDisplayMetrics().densityDpi) { 
     case DisplayMetrics.DENSITY_LOW: 
      Log.d(Utils.TAG,"Low desity"); 
      break; 
     case DisplayMetrics.DENSITY_MEDIUM: 
      Log.d(Utils.TAG,"medium desity"); 
      break; 
     case DisplayMetrics.DENSITY_HIGH: 
      Log.d(Utils.TAG,"high desity"); 
      break; 
     case DisplayMetrics.DENSITY_XHIGH: 
      Log.d(Utils.TAG,"xhigh desity"); 
      break; 
     case DisplayMetrics.DENSITY_XXHIGH: 
      Log.d(Utils.TAG,"xxhigh desity"); 
      break; 
     case DisplayMetrics.DENSITY_XXXHIGH: 
      Log.d(Utils.TAG,"xxxhigh desity"); 
      break; 
    } 
+0

我不知道。但我想我讀到Instagram使用1080x1080的方形圖片。 說到這裏,我不是專家。但是我認爲,如果一個專注於圖像的大型應用使用該解決方案。我應該夠了。 –

回答

1

低密度(LDPI)的分辨率和desisty:75x75

中密度(MDPI):100×100,基線

高密度(hdpi)150x150

超高密度(xhdpi)200x200

額外X2高密度(xxhdpi)300x300的

額外X3高密度(xxxhdpi)400×400

Range of screens supported | Android Developers

+0

謝謝!關於一般圖像的問題,如果我的服務器上的圖像被定義爲300 * 300,那麼我應該檢查圖像的任何其他方面?有些類似於android中的密度? –

+0

不是。你可能想要考慮的唯一事情就是JPEG有一個品質因素。質量因子越低,壓縮率越高,因此文件尺寸越小,但圖像中的準確性也越高。另一方面,PNG是無損的。 –