0

画像がたくさんあるAndroidアプリを開発しています。韓国のアプリです。可能な最大数の解像度をサポートしたい。そこで、Google ドキュメントに記載されているように、drawable 用に 4 つの異なるフォルダー (ldpi、mdpi、hdpi、xhdpi) を作成しました。今私の問題は、私のアプリがほとんどすべてのデバイスで完全に動作することですが、韓国にはデバイスPantech Vega LTE Mがあり、多くの問題を引き起こしています

解像度は xhdpi カテゴリですが、このデバイスでも私のアプリは mdpi からの画像を表示し、解像度よりも大きく表示されます。したがって、画像の半分は圧縮されて表示されます。

したがって、このデバイスのドローアブルを設定する方法がわかりません。この解像度に合わせて別のドローアブル フォルダーを追加する必要がありますか。

mdpi フォルダー内の画像を変更すると、他の解像度で問題が発生します。

追加する必要があるフォルダーの数に加えて、アプリを利用可能なすべての解像度と互換性があるようにします。

4

2 に答える 2

1

これは、そのデバイスが Android 2.3 Gingerbread を実行しているためです。X-Large 構成がまだサポートされていなかったのは、その解像度が Adroid 3.0 afaik からサポートされていたためです。

編集: xhdpi は API レベル 9 以降でサポートされているようで、デバイスの構成仕様は通常の xhdpi の大画面のように見えます。したがって、私が考えることができる唯一の回避策は、ドローアブル内にそれらのフォルダーを作成することです。

于 2012-06-18T14:10:11.790 に答える
0

こんにちは drawable-large-mdpi のようなドローアブル フォルダーを作成します

  1. お使いのデバイスが large 、 xlarge のどのカテゴリに該当するかを確認し、それに応じてフォルダーを作成します。
  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();     } 
    
于 2012-06-18T14:33:13.880 に答える