0

私は2つの画像を合成するプロセスを持っており、すべてのデバイスで見事に機能します。ただし、理解できない理由でアートの寸法を誤って報告し、約30過大評価している銀河のネクサスを除きます。 %。

アートをdrawableフォルダーとdrawable_hdpiフォルダーの両方に配置しようとしましたが(それは問題ではありません)、画像は常にこの間違ったサイズでプルされます。私はDPIの専門家ではありませんが、何かがどこにでも引き寄せられる前に、これらすべてが起こっているということです。リソースからビットマップをロードし、その寸法を尋ねて、この30%増加した数を取得しているだけです。画像が爆破されているという謎が複雑になります!そのため、その過程でも品質が低下しています。

誰かがこれを引き起こしている可能性があるものについて何か考えを持っていますか?私はICSデバイス(Samsung Nexus)を1つしか持っていないので、これがICSの問題なのかデバイスの問題なのかわかりません。

アートを元のサイズに拡大して回避していますが、一体何が起こっているのかを理解するのに時間がかかり、アートの保存方法で本当に重要な何かを見落としているかどうか知りたいです。 ICSで読むか、これが単なるバグであるかどうかを確認してください。

TIA

4

1 に答える 1

4

Androidは、デバイスのネイティブ密度(xhdpiGalaxy Nexusの場合)のドキュメントその他のドキュメントでリソースが利用できない場合、リソースを自動的にスケールアップ(およびスケールダウン)します

したがって、 100x100のフォルダにのみmdpi存在する画像がある場合、システムは自動的に画像を150x150にhdpi、200x200に拡大しxhdpiます。明らかに、ここでは品質が低下するため、複数の密度(通常はhdpiおよびxhdpi)で画像を提供する必要があります。画像をまったく拡大縮小したくない場合は、nodpiフォルダまたはフォルダに配置できassetsます。

mdpiこれは最初のデバイス(G1)の密度であり、160dpiであるため、ベースラインです。

hdpiは240dpi(1.666 * mdpi)

xhdpiは320dpi(2 * mdpi)

これで、BitmapFactoryを介してリソースを読み取るときに、実際のリソースの寸法ではなく、既にスケーリングされた画像の寸法が報告されます。ほとんどの場合、これはあなたがしたいことです。

于 2012-05-19T04:08:39.493 に答える