(hdpi/LDPI/MDPI)デバイスの画面サイズに基づいて関数を呼び出します。は、私は、このメソッドを呼び出すしたいと思いますMDPIデバイスで
final float scale = getResources().getDisplayMetrics().density;
double height_px = 45 * scale + 0.5;
が、私はアプリが上で実行されたときにメソッドを無視したいですhdpiデバイスでは、クラスの画面サイズをどのように決定できますか?
(hdpi/LDPI/MDPI)デバイスの画面サイズに基づいて関数を呼び出します。は、私は、このメソッドを呼び出すしたいと思いますMDPIデバイスで
final float scale = getResources().getDisplayMetrics().density;
double height_px = 45 * scale + 0.5;
が、私はアプリが上で実行されたときにメソッドを無視したいですhdpiデバイスでは、クラスの画面サイズをどのように決定できますか?
うん単にあなたは、このようにスケール値をチェックすることができ
final float scale = getResources().getDisplayMetrics().density;
そして今、あなたはスケール値を持っています。スケール値は、スケール値は、1.0ある、MDPIデバイスの場合、このような
を変化させます。
LDPIデバイスの場合、縮尺は0.75です。
HDPIデバイスの場合、スケール値は、1.50あります。
XHDPIデバイスの場合、縮尺値は2.0です。
ただ、このコードは高いためと解像度の上に実行されないことを意味し、クロスチェック、
if(scale <1.50)
{
double height_px = 45 * scale + 0.5;
}
を作ります。
それはこのようにSTHを行うことも可能です:
int dpiDensity = getResources().getDisplayMetrics().densityDpi;
そしてあなたは、このようなDisplayMetricsからの定数と結果の値を比較することができます。
switch(dpiDensity){
case DisplayMetrics.DENSITY_LOW:
//Do sth for LDPI-screen devices
break;
case DisplayMetrics.DENSITY_MEDIUM:
//Do sth for MDPI-screen devices
break;
case DisplayMetrics.DENSITY_HIGH:
//Do sth for HDPI-screen devices
break;
case DisplayMetrics.DENSITY_XHIGH:
//Do sth for XHDPI-screen devices
break;
}
定数と呼ばDENSITY_DEFAULTが、その価値もありますDENSITY_MEDIUMと同じです。
(1)どのような方法 - 私は何も表示されません? (2)既に密度を取得しているので、それが何であるかを確認してください:http://developer.android.com/guide/practices/screens_support.html –
はい私は方法でラップしません。私はちょうど私が知りたいのですが、私は例えばどうすればいいのですか?画面のサイズが320dpならdouble height_px = 45 * scale + 0.5;どのように私はそれを宣言することができますか? – hectichavana
しかし、あなたはすでに画面の密度、画面の高さと画面の幅を持っています - 何が問題なのですか? –