Androidの解像度について

2012/01/09 16:56:00
こんばんわ!Noranekoです。

前からAndroidの解像度についてイロイロ調べてて、
ちょっとまとめようと思っていたので、書いていきたいと思います。

なんといいますか、





解像度統一しろや!



もうね。この一言に尽きる。
昔から携帯の開発をいやいややっていて、やっぱりここにぶち当たりますね。

最近dpiって言葉を聞くけど、AppleがiPhoneのネタなくなって、
情弱を騙す為に使ったのがきっかけだと思う。

dpiとは、『dots per inch』で、dotという最小単位が1inchの長さにどれだけ入るかという 単位であり、元々は印刷する時等に使われてた物です。
Androidでのdpiの使われ方がちょっとあれなので、覚えておくとキャバクラとかでもてるよ!

んで、本題に入るぜ!
Androidの解像度と画像の記事でよく見かけるのが、
『このdpiを参照して拡縮するといいよ』
とあるんですが、去年の話なのですが、
IS03でデバッグしてた時に、画像とかが変な風に表示されてました。
その時、AVDでも確認しましたが、
hw.lcd.density: 160
で設定してる時と同じ症状でした。
(現在、検索すると320でAVDを設定してる人もいます。なんでだろう…)

こういうことがあったので、この数値を当てにしない方が良いのかなと。
特に、sharpやsharp、sharp製は怪しい。
では、どうするのか?

3択-一つだけ選びなさい
答え①ハンサムのオレは突如画期的なアイデアがひらめく
答え②仲間がきて助けてくれる
答え③どうにもならない。現実は非情である。






答え③


どうにもなりません。あきらめましょう…



と言いたい所ですが、いくつか方法があります。
良かったですね!
こんなくだらないブログをわざわざ読んで下さった方々の為に、以下の方法を。

①drawable-hdpi、drawable-mdpi、drawable-ldpi等に最適化した画像を用意する
②drawable-nodpiというディレクトリを設定し、画像を放り込む
③dpiを使わない方法

ゲームのように大量に画像がある場合は、①の方法を使うと死にます。
ゲームでドット画を再現したい場合は②を使うのがおすすめ。
(CAT FANTASYでは②を採用しています)
※②を使った場合、解像度が高い携帯では基準にした画像で表示される為小さくなります。

で、今回③の方法を詳しく説明したいと思います。
現在、1024*720というアホな解像度のスマートフォンが出てきたということですが、
自分は800*480を基準とし、それ以上に対応と言う形が無難だと思ってるので、
そのやり方を説明します。
まず画像を全部『drawable-hdpi』に放りこみます。

int PX = 64;
// 画面情報取得
DisplayMetrics dm = new DisplayMetrics();  
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels;
// 画像取得
BitmapFactory.Options op = new BitmapFactory.Options();
op.inTargetDensity = DisplayMetrics.DENSITY_HIGH;
Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.gazo, op);
// 画像表示
Canvas.drawBitmap(bmp,
 new Rect(0, 0, PX, PX),
 new Rect(0, 0, PX*width/480, PX*width/480),
 null);


解説
64*64の画像を表示する時のロジックです。
8行目の『DisplayMetrics.DENSITY_HIGH』を指定してるのは、『drawable-hdpi』に画像がある為です。

blog001.png
このようなゲーム画像を表示したい時にも対応できます。

多分…


なんか今調べたら、540*960や1024*600という変な解像度がいっぱいある…
せめてアスペクト比を統一して下さい・・・




~こんなアプリ出してます~

authored by Noraneko | Comment(0) | Android

ブログ始めました!

2012/01/07 14:53:00
こんばんわわわ。
管理人のNoranekoです。

今回ブログを始めるに当り、WordPress、Bloggerなど試しましたが、
デザインの融通が全く利かない...ということで古巣に戻りました。
さくらのブログ(seesaa)は構造がわかりやすく、html、cssも簡潔に作られており非常に捗ります。

また、今回技術系の記事も書くため、
『SyntaxHighlighter』を導入。
現在、versionが1.x、2.x、3.xの3種類あるみたいですが、
2.xだとソースにマウスを当てると変なアイコンが出るので却下。
3.xだと緑の?がかっこ悪く、行ごとに色が変わらないバグがある為却下。
なんで、1.5.1をDLして、導入しました。

そうすると
public int GetInt(){
  int i=0;
  int j=0;
  for(i=0; i<10; i++){
    j+=i;
  }
  return j;
}

こんな感じで、表示できるぜ!やったねたえちゃん!トラフィックが増えるよ!!
※JavaScript等を使用しているんで、トラフィックが増えます。
現在では、JQueryだなんだかんだ必要ない物でもincludeする世の中だし、
未だにISDNとか使ってる人も少ないと思うので、まぁ良しとしましょう。
『SyntaxHighlighter 1.5.1』はここからDLしました。

このブログでは主に私が気が向いた時に適当に思ったことを書いて行こうかと。
他のブログと差別化する為にも

ちんこ

とか、前向きに発言して行きたいと思っております!




~こんなアプリ出してます~

authored by Noraneko | Comment(0) | ひとりごと
<< 8 9 10 11 12 13 14 15 16 17 
BLOG内検索
<< 2018/05 >>
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
<< 過去ログ >>