0

私はAndroidアプリケーションを開発する必要があり、この環境の初心者です。実際には、Objective-Cを搭載したiPhone用に作成された既存のアプリケーションをAndroidに移植する必要があります。現在、Samsung S2、S3、Note、Note2の4つのデバイスを対象としています。アプリケーションはボタンと背景のカスタム画像で完全に構成されています。iOS開発での私の経験から、網膜以外のデバイスと網膜デバイス用に320x480と640x960の背景を設計し、適切な@2xサフィックスを付ければシステムは正しいものを選択しました。私はこれを処理するAndroidの方法を理解しようとしています。[複数の画面のサポート](http://developer.android.com/guide/practices/screens_support.html)のドキュメントを読みましたが、まだいくつかの点で混乱しています。

理解している限り、small、normal、large、xlarge、およびldpi、mdpi、hdpi、xhdpiという名前のサイズと密度のカテゴリがあります。適切なビットマップリソースを生成し、それらを正しい「drawable-XY」フォルダに配置する必要があります。これは、iOSの@2x表記の高度なバージョンのように見えます。しかし、背景画像をどのように準備すればよいのか正確にはわかりません。たとえば、Note1とNote2は、正しく計算した場合、それぞれ449x718dpと431x767dpの解像度を持っているため、どちらも通常のサイズのカテゴリに分類されます。Note1の背景画像を準備すると、その画面比率はNote2の画面比率と同じにならず、背景画像のサイズを変更する必要があります。そのため、システムは、同じサイズとピクセル密度のカテゴリに分類される異なるサイズのデバイスを処理しません。それで、私が得られないのは、このシステムによって、同じサイズ密度のカテゴリの下にある同様のデバイスに同じ背景画像を再利用できる方法です。たとえば、Note1とNote2に別々の背景画像を用意する必要がありますか?もしそうなら、この分類の意味は何ですか、私は何かが欠けていますか?

4

2 に答える 2

1

現在、Samsung S2、S3、Note、Note2の4つのデバイスを対象としています。

アプリの配布を制御していて、何らかの方法でそれらのデバイスでの実行を制限できる場合を除いて、せいぜいそれらはサンプルデバイスです。たとえば、Playストアを介してアプリを配布することを計画している場合、アプリは、さまざまな画面サイズ、密度、解像度で、他の多くのアプリになります。<compatible-screens>マニフェストの要素を介してサイズと密度の組み合わせを制限することはできますが、それでもさまざまな解像度があります。

だから、私が得られないのは、このシステムが同じサイズ密度のカテゴリの下で同様のデバイスに同じ背景画像を再利用できるようにする方法です。たとえば、Note1とNote2に別々の背景画像を用意する必要がありますか?

アプリの配布をこれらの4つのデバイスに制限できる場合、android.os.Buildデバイスをスニッフィングし、デバイスモデルに基づいて別の画像を選択するために使用する場合は、そうすることを歓迎します。

アプリをより多くのユーザーに配布する場合、アプリを任意のデバイスで実行できる場合、使用される可能性のあるすべての解像度を事前に決定する実用的な手段はありません。したがって、可能な解像度ごとにカスタム画像を作成する実用的な手段はありません。この場合、デスクトップおよびWebアプリの他の何百万もの開発者が任意の解像度を処理するために使用した手法から学び、アプリのアプローチを再考する必要があります。

于 2013-01-16T17:58:37.033 に答える
0

コントロールサイズにはdpを使用し、Androidアプリには9パッチを使用することをお勧めします。Android SDKは、この種の詳細な分類を処理できません。hdpi / mdpi large / xlarge画面はある程度役立ちますが、あなたの場合は簡単な方法はないと思います。デバイスごとに個別の画像を作成する必要がある場合は、s2_layout_actvity.xml、s3_layout_activity.xmlのようなレイアウトを検討し、それぞれに対応する画像を使用することを検討してください。また、setContentViewを呼び出す前に、使用しているデバイスを検出してください。

于 2013-01-16T17:56:17.650 に答える