アクティビティを拡張しないクラスが1つあります。ユーザーがコードを使用してLDPI、MDPI、HDPI、またはXHDPI画面を使用していることを知りたい。何か案が?使用DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
しましたが、拡張するにはアクティビティが必要です。私は活動を拡張せずにそれが欲しいです。
質問する
1356 次
1 に答える
1
ウィンドウマネージャーの問題は、アクティビティコンテキストが必要なことです。名前をもう一度読んwindow manager
で、ガラ場、エルゴ、アクティビティを管理します。
試すことができるいくつかの異なるトリックがあります。このソリューションのコンテキストが必要になりますが、アクティビティコンテキストである必要はなく、アプリケーションコンテキストでもかまいません。実際には、正直に言うと、アプリケーションコンテキストからアクセスできるリソースが必要になります。
resフォルダーで、調べたいすべてのパラメーターのvalue.xmlを作成します。
// res
|- values-hdpi
|- values.xml
|- values-ldpi
|- values.xml
|- values-mdpi
|- values.xml
|- values-xhdpi
|- values.xml
これらのxmlのそれぞれに、次のコードを配置します。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="is_ldpi" format="boolean" type="bool">true</item>
<item name="is_hdpi" format="boolean" type="bool">false</item>
<item name="is_mdpi" format="boolean" type="bool">false</item>
<item name="is_xhdpi" format="boolean" type="bool">false</item>
</resources>
true
またはを必要に応じて変更するだけfalse
です。今では、呼び出すのと同じくらい簡単です。
boolean is_hdpi = context.getResources().getBoolean(R.bool.is_hdpi);
于 2013-01-09T09:42:40.660 に答える