0

で使用されるレイアウトのパスを表示する必要がありますsetContentView(R.layout.main);。したがって、携帯電話が の場合、normal-mdpi「パスは: /res/layout-normal-mdpi」と表示する必要があります。携帯電話が の場合、normal-hdpi「パスは: /res/layout-normal-hdpi」というテキストが必要です。

基本的に、ロードされたレイアウト ファイルとそのパスを知る必要があります。

4

2 に答える 2

3

xml に対応するフォルダー名を含む非表示のテキスト ビューを追加できます
。テキスト ビューで文字列を取得する

TextView path = (TextView)findViewbyid(R.id.hiddentextview); 
 String s =  path.gettext().tostring();

テキスト ビューのすべての ID が同じであることを確認してください。

if your xml is in `normal-mdpi` in hidden textview hard code `normal-mdpi`
if your xml is in `large-mdpi` in hidden textview hard code `large-mdpi`
于 2012-07-03T16:25:31.770 に答える
1

Activity.getResources().getConfiguration()現在の構成を取得するものを呼び出すことができます-ドキュメントを参照してください。必要な画面密度と密度フィールドについて、そこから必要な情報のほとんどを取得できます(つまり、方向screenLayoutが必要です)。私が知っている実際のレイアウト パスを取得する方法はありません。Activity.getResources().getDisplayMetrics()

UPD うーん、これを見てください: LayoutInflater.inflate() - これは、内部でどのように機能しているかです。さらに深く掘り下げると、実際のインフレーションを行うネイティブ メソッドが呼び出されるため、運が悪いかもしれません。 xml パーサーを使用すると、それを行う方法が見つかります。私の頭の上から、すべてのレイアウトにコメントを追加して、ファイルの名前を入れることができます。次に、Activity.getResources().getLayout(your_layout_id) を使用して xml パーサーを取得し、パーサーを使用してコメントを取得します。これにより、アクセスしたばかりのファイルを正確に知ることができます。

于 2012-07-03T17:05:04.650 に答える