0

ユーザーに表示するためにたくさんの画像をダウンロードしています。
この画像はそれぞれ 512x512 です。

通常の解像度の iPhone ではすべて問題なく動作します
が、iPhone4 では拡大縮小されて表示されます。

この画像がリソースから取得されている場合、画像名に を
追加するだけ@2xですべてが機能し
ます。問題は、この画像が Web から動的に読み込まれることです。

この UIImageViews が網膜ディスプレイで拡大しないようにするにはどうすればよいですか?

編集:スクリーンショットは次のとおりです。

皆さん、ありがとうございました。

4

2 に答える 2

6

このコードを見てください-画像がスケール= 2またはスケール= 1でロードされるかどうかを制御したいときにUIImageカテゴリで使用します... NSDataがファイルのコンテンツを取得する場所を確認して(コード内)、置き換えウェブから画像を取得するコードで:

if ( [[[UIDevice currentDevice] systemVersion] intValue] >= 4 && [[UIScreen mainScreen] scale] == 2.0 ) {
    if ( [[NSFileManager defaultManager] fileExistsAtPath:path] ) {
        return [self initWithCGImage:[[UIImage imageWithData:[NSData dataWithContentsOfFile:path]] CGImage] scale:2.0 orientation:UIImageOrientationUp];
    }
} else [ load here the image via imageWithContentsOfFile or whatever ]

したがって、トリックはUIImageクラスの「initWithCGImage」の「スケール」パラメーターにあります。高解像度の画像をロードしている場合は2.0を渡し、低解像度の画像をロードしている場合は1.0を渡します。ハイレゾ画像読み込み中。

最高、まりん

于 2010-11-24T08:29:04.043 に答える
1

デバイスに Retina ディスプレイが搭載されているかどうかを確認し、搭載されている場合は画像を縮小してみてください。Retina ディスプレイがあるかどうかは、次の方法で確認できます。

    if ( [[[UIDevice currentDevice] systemVersion] intValue] >= 4 && [[UIScreen mainScreen] scale] == 2.0 ) {
  //do the scaling of image(s)
}

それがうまくいくかどうか教えてください。

于 2010-11-04T11:58:00.533 に答える