お使いのブラウザは、バージョンが古すぎます。

このサイトは、Internet Explore8・Internet Explore9には対応しておりません。
恐れ入りますが、お使いのブラウザをバージョンアップしていただきますよう宜しくお願いいたします。

【Android】画面のサイズと密度を求めるTips

こんにちわpencoです。
Androidの場合マルチ画面のサポートは必須になってきますが、実機でテストを行う際にこの端末、解像度は分かるけどdpiはなんだっけ…?と思うことが多々あります。
そこで、画面のサイズと密度を求めて表示するアプリを作って、実機で一度実行させることにしました。

簡易アプリを作って調べる

以下コードです。
 

DisplayMetrics metrics = new DisplayMetrics();  
		getWindowManager().getDefaultDisplay().getMetrics(metrics);  
int dpi1 = metrics.densityDpi;
String myDpi = "";
		
switch(dpi1){
case DisplayMetrics.DENSITY_LOW://120dpi
	myDpi = "ldpi";
	break;
case DisplayMetrics.DENSITY_MEDIUM://160dpi
	myDpi = "mdpi";
	break;
case DisplayMetrics.DENSITY_HIGH://240dpi
	myDpi = "hdpi";
	break;
case DisplayMetrics.DENSITY_XHIGH://320dpi
	myDpi = "xhdpi";
	break;
case DisplayMetrics.DENSITY_XXHIGH://480dpi
	myDpi = "xxhdpi";
	break;
case DisplayMetrics.DENSITY_XXXHIGH://640dpi
	myDpi = "xxxhdpi";
	break;
case DisplayMetrics.DENSITY_TV://213dpi
	myDpi = "tvdpi";
	break;
}
		
int size = this.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK;
String myScreenSize = "";
switch(size){
case Configuration.SCREENLAYOUT_SIZE_SMALL:	//small 画面は 426dp x 320dp が最小
	myScreenSize = "small";
	break;
case Configuration.SCREENLAYOUT_SIZE_NORMAL:	//normal 画面は 470dp x 320dp が最小
	myScreenSize = "normal";
	break;
case Configuration.SCREENLAYOUT_SIZE_LARGE:	//large 画面は 640dp x 480dp が最小
	myScreenSize = "large";
	break;
case Configuration.SCREENLAYOUT_SIZE_XLARGE:	//xlarge 画面は 960dp x 720dp が最小
	myScreenSize = "xlarge";
	break;
}
		
TextView text = (TextView)findViewById(R.id.textview);
text.setText("width:"+metrics.widthPixels+
"\nheight:"+metrics.heightPixels+
"\n"+myDpi+":"+dpi1+
"\nScreenSize:"+myScreenSize);

 
これをonCreate()などで実行すればOKです。
 
あくまで端末のスペック調査用という感じなので簡単に書きました。
Eclipseにプロジェクトとして一つ作っておけば便利かなと思います。
 

 
実際にdpiやサイズ別にレイアウトを変更する方法についてはまた次回。

コメントをどうぞ

メールアドレスは公開されません。* が付いている欄は必須項目です。


お気軽にお問い合わせください。

日本VTR実験室では、お仕事のご依頼、ブログ・コラムのご感想などを受け付けております。
アプリ開発・コンテンツ制作でお困りでしたら、お気軽にご相談ください。
ご連絡お待ちしております。

お問い合わせはこちらから

03-3541-1230

info@nvtrlab.jp

電話受付対応時間:平日AM9:30〜PM6:00