2012-06-18 31 views
0

我正在开发具有大量图像的android应用程序。这是一个韩国应用程序。 我想支持可能的最大分辨率。 因此,我创建了4个不同的文件夹(ldpi,mdpi,hdpi,xhdpi),因为google文档中提到了drawable。 现在我的问题是,我所有的最重要设备上的应用工作完美,但在韩国有设备Pantech Vega LTE M这是给很多的麻烦如何设置为Android应用程序的多画面解析?

它的分辨率是xhdpi类的,但仍然在该器件我的应用程序显示图片来自MDPI和它显示比分辨率更大。因此,图像的一半显示为压缩。

所以我没有得到如何设置这个设备的drawables。我是否需要添加单独的可绘制文件夹以匹配此分辨率。

如果我更改mdpi文件夹中的图像比它会为其他分辨率创建问题。

除了我需要添加的文件夹数量之外,还可以让我的应用程序与所有可用的分辨率兼容。

回答

1

那是因为该设备运行的Android 2.3 Gingerbread其中X-Large配置尚未支持因为该分辨率是从Adroid 3.0 afaik开始支持的。

编辑: 貌似因为API级别9 xhdpi得到了支持,并从设备的配置规格看起来像一个正常的 - 大屏幕xhdpi。所以我能想到的唯一解决方法就是在你的drawable中创建这些文件夹。

+0

没有它的运行4.x和哪个文件夹我需要添加确切的信息? – Mayur

+0

尽管设备的规格似乎在2.3x下运行,但升级到ICS后,我建议您检查下面提到的设备密度,因为到目前为止,这看起来像是该设备的自定义ROM上的一个错误。 – Raykud

0

嗨你创建了绘制-大MDPI

  1. 绘制文件夹,请检查您的设备属于哪一类大,超大并创建相应的文件夹。
  2. 发布您的屏幕分辨率来调查问题。
  3. 检查此代码以获得有关设备

    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();  } 
    
+0

感谢vinnet我会尝试它并检查设备设备conf。 – Mayur

相关问题