优化图像大小以在图像视图上显示质量

时间:2016-07-28 11:43:45

标签: android android-layout android-imageview android-screen-support

我想从我的服务器下载图像并将其显示在图像视图中。 我主要担心的是不会损坏不同设备(不同屏幕尺寸,分辨率和密度)的图像质量

我想弄清楚如何测量我需要适合图像视图以保持其质量的图像尺寸

为了这个问题, 假设我有一个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;
    }

1 个答案:

答案 0 :(得分:1)

低密度(ldpi):75x75

中密度(mdpi):100x100,基线

高密度(hdpi)150x150

超高密度(xhdpi)200x200

额外x2高密度(xxhdpi)300x300

额外x3高密度(xxxhdpi)400x400

请参阅Range of screens supported | Android Developers