优化图像大小以在图像视图上显示质量
Optimizing image size for quality display on image view
我想从我的服务器下载图像并将其显示在图像视图中。
我主要关心的是不损害不同设备(具有不同屏幕尺寸、分辨率和密度)的图像质量
我想弄清楚如何准确测量我需要的图像大小以适应图像视图并保持其质量
为了这个问题,
假设我有一个 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;
}
低密度 (ldpi): 75x75
中等密度 (mdpi):100x100,基线
高密度 (hdpi) 150x150
超高密度 (xhdpi) 200x200
额外 x2 高密度 (xxhdpi) 300x300
额外 x3 高密度 (xxxhdpi) 400x400
我想从我的服务器下载图像并将其显示在图像视图中。 我主要关心的是不损害不同设备(具有不同屏幕尺寸、分辨率和密度)的图像质量
我想弄清楚如何准确测量我需要的图像大小以适应图像视图并保持其质量
为了这个问题, 假设我有一个 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;
}
低密度 (ldpi): 75x75
中等密度 (mdpi):100x100,基线
高密度 (hdpi) 150x150
超高密度 (xhdpi) 200x200
额外 x2 高密度 (xxhdpi) 300x300
额外 x3 高密度 (xxxhdpi) 400x400