Nexus10は2500*1600の解像度を保持しますが、同じ密度のファミリーの前のネイバーは1024*800を保持します-**DOUBLE**
私の懸念は完全に画像にあります、私はすでにx * x pxの画像を持っています、私がNexusで同じ画像を使用する場合-それは伸びますか?
これらのタイプの解像度を処理する方法は?
Nexus10は2500*1600の解像度を保持しますが、同じ密度のファミリーの前のネイバーは1024*800を保持します-**DOUBLE**
私の懸念は完全に画像にあります、私はすでにx * x pxの画像を持っています、私がNexusで同じ画像を使用する場合-それは伸びますか?
これらのタイプの解像度を処理する方法は?
これを達成するための多くの可能な方法があります。主なものの1つは、コンポーネントのサイズを使用することです。
幅-高さ(dp)、テキストサイズ(sp)
もう1つは、layout-ldpi、layout-mdpi、layout-hdpi、layout-xhdpiを使用できることです。
dpとspはあなたの問題を解決します
http://developer.android.com/guide/topics/resources/pproving-resources.html#AlternativeResources
画面の解像度に応じて、代替リソースが必要です。
たとえば、特大画面の代替レイアウトが必要な場合は、代替レイアウトをlayout-xlargeに配置する必要があります。一般的なルールはresources_name-qualifierです。複数の解像度と画面サイズをサポートするためのAndroidガイドのオプションについては、http://developer.android.com/guide/practices/screens_support.htmlをご覧ください。
アルンチャンドラヴァンシ
Androidで複数の解像度を処理します。
1)Androidアプリケーションプロジェクトの構造4フォルダー1)hdpi、mdpi、ldpi、およびxhdpi(resフォルダー内)では、複数の画面サイズのデバイス用にここに画像を配置できます。システムは、デバイスに応じてこれらのフォルダから画像を自動的に選択します。
2)フォントサイズを指定するときは、dpの代わりにspを使用します。
3)pxの代わりにdpを使用します。
4)ほとんどの場合、他のレイアウトではなく、線形レイアウトと相対レイアウトを使用します。
5)9つのパッチ画像を使用します。
6)絶対レイアウトの使用は避けてください。
7)png画像を使用します。
8)ランドスケープモードにはlayout-landフォルダーを使用します。
ありがとう。
画面のサイズをコードで決定してから、必要なコードを適用できます。たとえば、異なる画面解像度に基づいてテキストサイズを変更する必要があります。
public void setMainButtonTextSize(){
if (isXLargeScreen()){
mainButtonTextSize = 38;
mainButtonDownTextSize = 32;
titleTopButtonTextSize = 80;
titleBottomButtonTextSize = 60;
timeTextSize = 36;
dayTextSize = 26;
dateTextSize = 36;
} else if (isLargeScreen()){
mainButtonTextSize = 28;
mainButtonDownTextSize = 22;
titleTopButtonTextSize = 70;
titleBottomButtonTextSize = 50;
timeTextSize = 26;
dayTextSize = 16;
dateTextSize = 26;
} else if (isNormalScreen()){
mainButtonTextSize = 18;
mainButtonDownTextSize = 14;
titleTopButtonTextSize = 40;
titleBottomButtonTextSize = 30;
timeTextSize = 16;
dayTextSize = 12;
dateTextSize = 16;
} else if (isSmallScreen()){
mainButtonTextSize = 12;
mainButtonDownTextSize = 10;
titleTopButtonTextSize = 30;
titleBottomButtonTextSize = 20;
timeTextSize = 12;
dayTextSize = 8;
dateTextSize = 12;
}
}
public Boolean isLargeScreen(){
if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE) {
return true;
} else
return false;
}
public Boolean isNormalScreen(){
if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL) {
return true;
} else
return false;
}
public Boolean isSmallScreen(){
if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_SMALL) {
return true;
} else
return false;
}
public Boolean isXLargeScreen(){
if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_XLARGE) {
return true;
} else
return false;
}
戻り値に応じて、それに応じてテキストサイズを変更します。
このスレッドのポイントは、複数の画面のレイアウトを設計するための一般的なヒントです-
私は答えを得ました-
drawing-sw1200-xhdpiを使用して、解像度に応じてドローアブルをサブ分類することもできます。
よろしくSS