2

私のアプリケーションで、驚くべき問題が発生しました。

マニフェストにanyDensityタグfalseを設定すると、アプリケーションは正常に実行されますが、trueにすると、アプリケーションがぼやけて動作し、アプリケーションにビットマップを作成します。マニフェストでfalseのタグを付けると問題が発生しanyDensity、多くのデバイスがプレイストアで私のアプリを見ることができなくなります。助けていただければ幸いです。

<supports-screens
    android:anyDensity="false"
    android:largeScreens="true"
    android:normalScreens="true"
    android:smallScreens="true" />
4

2 に答える 2

6

ただし、元の投稿にはあまり多くの情報はありません。ドキュメントには次のように記載されています。

アプリケーションに画面密度に対応するリソースが含まれているかどうかを示します。Android 1.6(APIレベル4)以降をサポートするアプリケーションの場合、これはデフォルトで「true」であり、アプリケーションが機能する必要があることが絶対に確実でない限り、「false」に設定しないでください。これを無効にする必要があるのは、アプリがビットマップを直接操作する場合のみです。

だから私の最初の質問は、任意の画面密度(つまり、mdpi、hdpi、xhdpi、xxhdpi)に対応するためのすべてのリソースを含めるかどうかです。はいの場合、あなたは大丈夫なはずです。上記の引用の最後の文に続いて、私はこのリンクにたどり着きました。

それは言う:

アプリケーションは、マニフェストでandroid:anyDensityを「false」に設定するか、inScaledを「false」に設定してビットマップのプログラムで事前スケーリングを無効にすることができます。

アプリ全体でこのフラグをグローバルに無効にするのではなく、ビットマップに対してプログラムで実行してみましたか?

そして最後にこのセクションがあります。カスタムビットマップを適切に処理するのに役立つかもしれません。具体的には、この段落はあなたの問題のように聞こえます:

アプリケーションがメモリ内ビットマップ(ビットマップオブジェクト)を作成する場合、システムは、ビットマップがデフォルトでベースラインの中密度画面用に設計されていると想定し、描画時にビットマップを自動スケーリングします。ビットマップに不特定の密度プロパティがある場合、システムはビットマップに「自動スケーリング」を適用します。現在のデバイスの画面密度を適切に考慮せず、ビットマップの密度プロパティを指定しない場合、自動スケーリングにより、代替リソースを提供しない場合と同じようにスケーリングアーティファクトが発生する可能性があります。

于 2013-08-19T11:14:55.913 に答える
0

Android SDKに含まれているaaptツールを使用して、宣言された機能と権限に基づいて、GooglePlayがアプリケーションをフィルタリングする方法を決定できます。これを行うには、dumpbadgingコマンドを使用してaaptを実行します。アプリケーションのマニフェストを解析し、Google Playで使用されているのと同じルールを適用して、アプリケーションに必要な機能を決定します。このツールの使用の詳細については、 http://developer.android.com/guide/topics/manifest/uses-feature-element.html#testingにアクセスしてください。

于 2013-03-25T07:44:23.940 に答える