0

画像のサイズがx*yかどうかを知りたかっただけです。

網膜ディスプレイデバイスがで作成された画像を表示する場合CGRectMake(0,0,x,y)、それはピクセル化された画像でしょうか?

正しいサイズである必要がありますCGRectMake(0,0,x/2,y/2)か?

画像の正しいサイズをどのように判断できますか?

使用する必要がありcontentScaleFactor = [UIScreen mainScreen].scale;ますか?

または、次のように除算しCGRectMake(0,0,x/contentScaleFactor,y/contentScaleFactor)ます。

4

3 に答える 3

7

寸法は、ピクセルではなくポイントで測定さます。Retina ディスプレイ デバイスと非 Retina ディスプレイ デバイスのポイントは同じです。非 Retina ディスプレイ デバイスでは、1 ポイントは 1 ピクセルに相当しますが、Retina ディスプレイ デバイスでは、1 ポイントは 2 ピクセルに相当します。したがって、CGRectMake(0,0,x,y)両方に使用します。

ピクセル化された画像を避けるために、接尾辞が付いた倍解像度の画像を提供して@2xください。たとえば、通常のイメージが という名前foo.pngだった場合、Retina バージョンは という名前にする必要がありますfoo@2x.png

コーディング時には必ず参照してくださいfoo.png。アプリが Retina ディスプレイ デバイスで実行されている場合、倍解像度の画像 ( foo@2x.png) が自動的に使用されます。

于 2012-07-18T09:36:12.970 に答える
1

Retina 以外の画像 (myImage.png) のサイズは 21x21 で、サイズ 42x42 の @2x サフィックス (myImage@2x.png) を持つ別の画像を配置する必要があります。コードでは、次のように考えることができます

UIImage *img = [UIImage imageNamed:@"myImage"];

この呼び出しは、iPad に基づいて正しいファイルを自動的に選択します。

正しいサイズは

CGRectMake(0,0,21,21)
于 2012-07-18T10:22:06.147 に答える
1

「網膜」および「非網膜」という用語は、ディスプレイ画面のサイズではなく、ディスプレイ画面の解像度に関連しています。また、解像度は、1 インチ (ポイント) あたりのピクセル数に関連しています。

このようなシナリオでコーディングしている間、寸法は同じままで、画像の解像度が変更されるだけです。

アプリケーション バンドルでさまざまなサイズのリソースを使用する方法を理解するには、このリンクhttp://panditpakhurde.com/tech/?p=365を確認してください。

于 2012-07-18T10:36:07.757 に答える