我正在开发具有大量图像的Android应用程序。这是一个韩国应用程序。 我想支持最大可能的分辨率。 所以我创建了4个不同的文件夹(ldpi,mdpi,hdpi,xhdpi),用于google doc所说的drawable。 现在我的问题是我的应用程序完全适用于所有设备,但在韩国有设备Pantech Vega LTE M这给了很多麻烦
它的分辨率属于xhdpi类别,但仍然在这个设备中我的应用程序显示来自mdpi的图像,它显示比分辨率更大。所以图像的一半是压缩显示的。
所以我没有得到如何为这个设备设置drawables。我是否需要添加单独的drawable文件夹以匹配此分辨率。
如果我更改mdpi文件夹中的图像,则会产生其他分辨率的问题。
除了需要添加多少个文件夹,我的应用程序才能与所有可用的分辨率兼容。
答案 0 :(得分:1)
那是因为该设备运行的是Android 2.3 Gingerbread,其中X-Large配置尚未支持,因为从Adroid 3.0开始支持该分辨率。
修改强> 看起来自API级别9以来支持xhdpi,并且设备的配置规格看起来像普通的 - 大屏幕,带有xhdpi。因此,我能想到的唯一解决方法是在drawable中创建这些文件夹。
答案 1 :(得分:0)
您好您创建了drawable-large-mdpi
之类的可绘制文件夹检查此代码以获取有关您设备的确切信息
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
switch(metrics.densityDpi)
{
case DisplayMetrics.DENSITY_LOW:
Toast.makeText(this,"low density " + String.valueOf(metrics.densityDpi),Toast.LENGTH_SHORT ).show();
break;
case DisplayMetrics.DENSITY_MEDIUM:
Toast.makeText(this,"medium density " + String.valueOf(metrics.densityDpi),Toast.LENGTH_SHORT ).show();
break;
case DisplayMetrics.DENSITY_HIGH:
Toast.makeText(this,"high density " + String.valueOf(metrics.densityDpi),Toast.LENGTH_SHORT ).show();
break;
}
if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE)
{ Toast.makeText(this, "Large screen",Toast.LENGTH_SHORT).show(); }
else if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL)
{ Toast.makeText(this, "Normal sized screen" , Toast.LENGTH_SHORT).show(); }
else if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_SMALL)
{ Toast.makeText(this, "Small sized screen" , Toast.LENGTH_SHORT).show(); }
else { Toast.makeText(this, "Screen size is neither large, normal or small" , Toast.LENGTH_LONG).show(); }