15

私は自分のアプリにタブレットサイズの画面のサポートを追加することに取り組んでいます。さまざまな密度の画面用に、drawable-mdpiとdrawable-hdpiの画像がすでにあります。私の問題は、「大」画面であるが中密度のGalaxy 7 "のようなタブレットにあります。私のレイアウトの一部には、画面の幅全体に5つのボタンがあり、等間隔に配置されています。画像は非常に小さく、間に大量の空白があります。

大きなレイアウトには大きなグラフィックを使用して、適切に見えるようにするとともに、画面のスペースを活用したいと思います。hdpiディレクトリに2倍のサイズのグラフィックがあり、完全に機能します。テストとして、すべての画像を/ res/drawable-hdpiから/res/ drawable-large-mdpiにコピーしましたが、すべてが希望どおりに表示されました。

ただし、これらの画像をすべてコピーしてアプリのサイズを大きくしたくはありません。/ res / drawable-large-mdpi / button_0が要求されたときに、実際には/ res / drawable-hdpi / button_0が代わりに使用されるように、それぞれのエイリアスを作成したいと思います。

xmlビットマップを作成しようとしましたが、特定のディレクトリからドローアブルを参照する方法がわかりません。何か助けはありますか?

/res/drawable-large-mdpi/button_0.xmlの内容:

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable-hdpi/button_0" />

上記で発生するエラーは次のとおりです。

error: Error: No resource found that matches the given name (at 'src' with value '@drawable-hdpi/button_0_highlighted').
4

2 に答える 2

19

ボタンリソースをdrawable-nodpiフォルダに移動し、名前をに変更しますbutton_0_hdpi.xml

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/button_0" />

XMLエイリアスを使用する場合、修飾子を指定することはできません。@ drawable-hdpiがあり、@drawableである必要があります。また、ボタンビットマップの元の場所に2番目のXMLエイリアスを作成する必要もあります。

これは、メソッドhttp://blog.evendanan.net/2011/03/Android-resources-and-device-fragmentationに関する優れた記事です。

于 2011-06-28T18:06:59.633 に答える
3

このページでは、リソースフォルダで使用できるさまざまな修飾子について説明します。画面サイズ(small、med、large、xlarge)がdensity(ldpi、mdpi、hdpi)よりも大きい優先順位であることを示しているようです。これは、drawables-hdpiフォルダーの名前をdrawables-large-hdpiに変更した場合、Galaxyタブの密度が中程度であっても、画面が大きいため、このフォルダーのドローアブルを引き続き使用することを意味すると思います。

編集:私はこれをテストしました、それはあなたの問題を一方向に解決します。それらは、アプリの実行時にGalaxyタブに表示されるdrawables-large-hdpiフォルダー内の画像です。ただし、残念ながら、大きな修飾子を追加すると、hdpi密度の中型の画面に表示されなくなります。この機能を取得したい場合は、別々のフォルダーを作成し、大きなリソースのコピーを2つ用意する必要があるように見えます=(。

于 2011-02-18T23:44:04.070 に答える