2013-05-28 17 views
6

私は非常に単純な質問をしています:特定のリソースの修飾子を取得する方法(使用時)

R.javaファイルから特定のリソース(id、string、drawable、...)を与えられたら、それに合ったフォルダの修飾子を知ることはできますか?もしそうなら、どうですか?

たとえば、デバイスにhdpi密度の画面があり、 "res/drawable-hdpi"と "res/drawable-mdpi"に同じファイル名 "x.png"があります。このファイルをデコードするには、res/drawable-hdpiからファイルを取得し、hdpiの密度があることを知っていることが必要です。

もちろん、この例では、ファイルが他のフォルダには存在しますが、hdpiフォルダには存在しません。ファイルをデコードするときにどのファイルが使用されるかを教えてください。

他の修飾子(locale、screenSize、...)と同じです。

+0

は、私はその質問に興味があります。私は同じ問題に陥っています。あなたはそれを解決しましたか?どのような状況でもデバイスが使用するQualiferを推測する機能を見つけましたか? – GmloMalo

+0

@GmloMaloいいえ、私はなぜこれが欲しいのか覚えていません... –

+0

Ok。とにかくありがとう – GmloMalo

答えて

0

この問題は、多数のデバイスをターゲットにしているので、どのドローラブルが使用されているかを知るために私自身の簡単なアプリケーションを作成することに決めた場合に、多く発生します。 Hereがリンクです。

希望すると、これが役立ちます。

+0

サンプルコードにはコードはなく、私が書いたことを行う機能はありません。 –

+0

サンプルコードを実行するだけでわかります。 – bladeX

0

私は、アンドロイドフレームワークがどのリソースが使用されたかを把握するためのアプリケーションのメカニズムを提供しているとは思いません。

しかし、あなたはいつでもアンドロイドのリソース修飾子のドキュメントで指定されたルールに基づいてルールを定式化することができます。

しかし、あなたの要件が何であるかはっきりしていませんか?アプリケーションがどのリソースが使用されているかを認識できるようにしますか?それとも、デザインやビルド時にのみ必要なのですか?

どのリソースが使用されているかを把握するために、画面密度、画面サイズ、現在の電話ロケール、現在の方向に基づいてロジックを簡単に作成できます。これらはすべてAndroid搭載のさまざまなapisで利用できます。 dpiのため

+0

コードは、どのリソースファイルが存在するかについて何も知らないと仮定し、与えられたリソースにどの修飾子が使用されているかを示す関数を持つことが必要です。それはランタイム用です(そうでないと、ファイルがどこにあるのかわかりません)。 –

+0

私の意見では不可能なことです...あなたが提供する修飾子を使ってどのフォルダにどのリソースを置いたのか分かります。私が言及したデバイスのメトリクスに応じて、どのリソースがあなたのアプリケーションによって取得されているかを推測することができます。私はあなたがアプリケーションではなく、アンドロイドシステムによって行われる、特定のリソースのために存在する修飾子を見つけることができるとは思わない。 –

0

使用http://developer.android.com/reference/android/content/res/Configuration.html

例:

Configuration config = getResources().getConfiguration(); 
    Log.d("DPI ", Integer.toString(config.densityDpi)); 
+0

私はあなたにリソースIDを教えてくれる部分はどこですか?現在のところ、私が見ているのは、あなたがデバイスの密度を特定したことだけです。それは与えられたリソースとは関係ありません。 –

+0

これは、dpiを数字で見ることができます。 http://stackoverflow.com/questions/2025282/difference-between-px-dp-dip-and-sp-in-android携帯電話の設定と既知の密度バケットを使用してdpiを確認します。 – Novikov

+0

あなたはその質問を理解していません。私は密度を求めない。自分が選んだリソースの起源フォルダを取得する方法を尋ねます。例えば、複数のフォルダ( "drawable-ldpi"、 "drawable-port"、 "drawable-iw"、...)の中にdrawableを持っていれば、私が取得しようとしたときに選択したファイルそれ。 –

関連する問題