前回までのあらすじ。「大量にシェアを獲得したAndroidがそう簡単に内蔵ブラウザの仕様変更とまでは至らないだろうな。至るとすればAndroid 4.0への
メジャーバージョンアップと同時に変えてくるんだろうな、devicePixelRatioの数字」。…そう思っていたら2.3.5とかでもお構いなしに変えてきた。Googleさんパネぇ。
devicePixelRatio:高精細を誇るディスプレイで、1pxを1pxと解釈して出力された物を見せると「あまりにも細すぎて表示しても人間の目には認識出来ない」事がある。
まるで「レースクイーンだとかの細身である事が絶対条件の3次元の女を見てしまったかの様な印象」になってしまう。従って「太らせる」必要がある。
1pxを「幾つに」太らせるのか?とした指定の倍率の数字。iPhone4以降のiPhoneは「2」。Android内蔵ブラウザの大半は「1.5」。
すなわち1.5倍がAndroidのアイデンティティと言うのがこれまでの様相。…だったんだが、アイデンティティを早速変えてきた訳か。
T-01DのdevicePixelRatioは「2」。「1.5」から「2」に変えてきた。それが高精細化の証。
ARROWS KissのdevicePixelRatioは「1.5」のまま。富士通東芝とそれ以外の会社とする比較ではなく「精細度」の違いで変わると言う事が良く分かりますね。
従って「Androidは1.5だろ?」とは言えなくなりました。…完全に混在したカオスな世界だな。と言うのが俺の感想。…まぁいいや。
混在以前:Androidは1.5、iPhoneは2と決めつけてユーザーエージェントを見て数字を選んで選んだ数字を使って出した数を使って画像の縦横を決めて出力を掛ける。
混在以降:PHPでやってた上記の「決めつけ」が使えなくなったのでCSSによる制御に切り換え。ソースコードを200byte程度長くしてCSSの方を使って制御。
1、スマートフォンからのアクセスかどうかを見る。 2、スマートフォンからのアクセスだったら特殊なCSSの追加出力を掛ける。
3、「webkit-min-device-pixel-ratio」の掛かった特殊CSSをスマートフォンの具体的な種類に関わらず「1.5なら」「2なら」の両方の内容を一気に出力する。
…本当はCookieでdevicePixelRatioの数字を取得して変数に数字を埋め込んでgetimagesizeを使って元画像の縦横を抽出して取得した数字を使って割る。
とした方が簡単なんだがな。Cookieで取得して変数に収納すると言う方法がありません。なので出来ません。俺JavaScript嫌いなんで。だからCSSしか無い。
devicePixelRatio「1」とするスマートフォンも存在はしている。但し性能的にプアで今はもう売ってません的なアイテムばかりとなっている。
「携帯キャリアがそうした古いスマートフォンを回収して新しいスマートフォンに切り換えてください的なキャッシュバックキャンペーンをやっている」
とするこの現実の1点だけで、そうしたアイテムへの対応はしなくてもいいんじゃないかな?とする判断材料はあるので「1.5」か、それとも「2」か。
とした対応で十分と俺は考えている。…いずれにしてもスマートフォン業界は移り変わりが激しいので激しく首を突っ込む事はナンセンスでしかないですね。
としてきた俺の印象がやっぱり正しかった事がまたもや証明されました。そんな今日この頃。