-webkit-min-device-pixel-ratioの共通値照合

2769 ワード

http://www.189works.com/article-95647-1.html 
iPhoneといえば 4持ってきた革新、retina displayはきっと一番目を引くものです.だから、今パソコンのモニターを見ていると、スクリーンいっぱいのピクセルが見られます.⋯
この網膜ディスプレイに依存しています.iPhone 4の解像度は640%に達しています.×960 pixels;しかし、下の互換性を維持するためには、まだ320を採用しています.×480 pointsです
つまり、拡大縮小しないで、普通の画像を表示する場合、4つのピクセルで画像の1つのピクセルを表示します.一方、retinaピクチャを表示する場合、各画素は、ピクチャの1画素に対応する.
このように、古いアプリケーションは修正する必要がなく、iPhone 4で実行できます.
iOSを使っています SDKがiOSアプリケーションを開発する場合、画像名に「@2 x」のサフィックスを付けるだけで、レティナdisplayをサポートするデバイスに自動的にこの解像度の高い画像を表示させることができます.
しかしSafariなどUICWebViewを使ったアプリケーションは、画像を展示する際に、この特性を利用できないため、必要でないHTTP要求が大量に発生する可能性があります.
自動で実現できない以上、手動でやるしかない.原理は簡単で、2種類の画像を用意して、レティナdisplayを検出したら、大きな図を表示して、画像の幅を半分ずつ縮小してもいいです.
ウェブページでは、pixelとpointの比をdevice-pixel-ratioと呼びます.普通の設備は全部1、iPhone 4は2です.一部のAndroidの機種は1.5です.
それを検出するには、直接CSS 3 media queryを使えばいいです.
<link レル=「styless heet」 type=「text/css」  href="/css/retina.css" media=「only」 screen and (-webkit-min-device-pixel-ratio: 2) only screen and (min-device-pixel-ratio: 2)「/」  または:
@media only screen and (-webkit-min-device-pixel-ratio: 2) only screen and (min-device-pixel-ratio: 2) {}  このような方法の欠点は、画像を背景画像として設定するか、または同時に2つの要素を列記する必要があるが、その中の一つを隠すことである.詳しいコードは列挙しません.
もっと柔軟な方法はもちろんJavaScriptを使うことです.window.devicePixelRatioを簡単に入手すればいいです.古いブラウザにとってはundefinedです.これを1として使えばいいです.
この地球儀を例に挙げます.

 src=「/data/atachment/potal/ett 2/20209/ET 4012130659322 png」 id=「photo」/>  長さは64ピクセルですので、128ピクセルを取って、半分に縮小します.
if (window.devicePixelRatio == 2) {      var photo = Dcument.getElemenntById('photo')      photo.src = '/data/atachment/potal/ett 2/20209/ET 4012130659323 png'      photophoto.width = photo.height = 64; // この画像は幅の高さが指定されていません.その中の一つを修正すればいいです.  )  この方法の欠点は、JavaScriptが実行する前に、解像度の低い画像を取得しているため、流量を浪費する可能性があるということです.
最終的な効果は以下の通りです.
 
パソコンではまったく区別が分かりませんが、iPhone 4を使って携帯のページを見たり拡大したりすると、2つの違いが分かりやすくなります.
  前言:
 
    本論文は対から来ている http://bjango.com/articles/min-device-pixel-ratio/ の部分整理:
 
  本文:
 
  • -webkit-min-device-pixel-ratioは1.0
  • です.
  • すべての非Retina Mac
  • Retina以外のすべてのiOSデバイス
  • Acer Iconia A 500 
  • Samsung Galaxy Tab 10.1
  • Samsung Galaxy S 
  •  
  • -webkit-min-device-pixel-ratioは1.3
  • である.
    Google Nexus 7  
  • -webkit-min-device-pixel-ratioは1.5
  • です.
  • Google Nexus S 
  • Samsung Galaxy S II 
  • HTC Desire
  • HTC_Desire HD
  • HTC Incredible S 
  • HTC Velocity
  • HTC Sensation 
  •  
  • -webkit-min-device-pixel-ratioは2.0
  • である.
    iPhone 4 iPhone 4 S iPhone 5 iPad(3 rd generation)iPad 4 Retina displaysのすべてのMAC Google Galaxy Nexus Google Nexus 4 Google Nexus 10 Samsung Galaxy S III Samsung Galaxy Note II ソニーXperia S HTC One X