AndroidのXML奮闘日記
2012/03/06 00:00:00基本プログラムは、
コピペ->コンパイル->期待通りの動きじゃない->検索->コピペ
の繰り返し。ほんと最近はソースがいっぱい落ちてて指先ひとつでダウンロード!
でもたまに他の値と組合すと期待通りの動きにならないことの方が多いでごわす!
で、Android手抜きUI講座として、XMLとImageViewでタップ時とタップ時でない時の画像変更について、書いてみましょう~。
他のブログの方のカスタマイズです。
で、私の場合、ボタン3つをandroid:layout_weight="1"を入れて均等配置したかったので、
そのブログの方のソースを拝借して、以下のように。
まず『res/values/style.xml』として、
で、『res/xml』ディレクトリに
上記のstart.xml~output.xmlを配置。内容は
こんな感じで。
『drawable/***』は画像になります。
なるほど。簡単ですっきり!
自分としては、それぞれのイベント処理も一個にまとめたかったんですが、
それぞれ対応のxmlを置きました。
そんで、main.xmlに以下の文を適当に挿入~。
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
android:id="@+id/start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
style="@style/start"
>
android:id="@+id/stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
style="@style/stop"
>
android:id="@+id/output"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
style="@style/output"
>
で、出力した結果
お☆し☆い!
いやー実におしい。ほんとあとちょっとだよ!
なんだこれなら簡単にいけるじゃんて夕飯食って、
だらだらやってかれこれ4時間、、、
LinearLayoutの値いじったり、ImageViewの値いじったり、
fill_parentとwrap_content入れ替えたり。
全くかわらね!
で、centerとか指示してても横に伸びたりしてて、これおかしいな~
って思って、style.xmlを
と、したところ
ktkr!
これだよ。私の望んでいたのは!!
つまりbackground指定すると、android:layout_weight="1"で
背景画像も伸びちゃってたのよね。
なるほど。
なので、ImageViewなら、srcでそのまま画像を選択できるので、
backgroundじゃなく、srcにするのがおすすめです。
けっこうbackground指定してる人いるけど、なんでだろ?
画像が伸びるーって検索ワードいれたけどひっかからなかったので、
泣く泣くソースとにらめっこしてた。
ていうかこのxmlが使いづらくて触りたくなかった><
検索でここにたどり着いた方は、参考にしてちょ!ペロペロ
画像をクリックすると下のように『***_on.***』と指定した画像に変わります。
気に入ったら押してね
~こんなアプリ出してます~
SKYRIM始めました!
2012/02/10 03:41:00年末から仕事の話がちょくちょくきてお流れになって、OpenGLのお勉強して、
ちょっとイロイロやってたんだけど、時間ができたので、SKYRIM始めてみました。
メモリも16Gで、Radeonさんに本気だしてもらってるけど、
全然ぬるぬる余裕で動くわ~。
XBOXも買いそびれてたけど、さすがうちらのSTEAMさん!
SKYRIM完備で、ほんとWindowsユーザで良かったと毎回思っております。
で、今ならなんと33%オフの
$39.99!
日本円に換算するとカードの手数料とか込みで、約3,100円!!
マジかよ糞箱売ってくる(
いやーおじさん参っちゃったよ。
で、インスコして始めたら、
日☆本☆語!
友達に英語にできるよーってことは聞いてたので、早速optionとか調べてたけどない…
で検索かけると、いっぱいでてくるね。
今のトレンドは英語モジュールに日本語サブタイトル。これ。
読んでて超めんどくさそう><
英語voice+英語subtitleで十分なので、早速英語版に切り替え。
他の方も書いてますが、私目もSS付きでご紹介。
まず、STEAMさんを立ち上げます。
その前にマシンの電源を入れ、windowsが起動ていることを確認しなければいけません。
この画面で、Skyrimってなってるとこを右クリックするべし。
で、プロパティを左クリック!
そうすると、プロパティ画面で出るので、言語タブを選択して、
プルダウンから『English(英語)』を選択して下さい。
そうすると、ダウンロードが開始されて、英語になります!
しかし!
ここで、注意事項ががが。
自分も最初思ってたんですが、ゲーム本体に対して、
言語のパッチがあって切り替えられてると。
現実は、英語版と日本語版で別になっており、リリースversionも違うらしいです。
つまり、
言語を変える度にゲーム本体がダウンロードされる!
おいおいまじかよ...糞b(ry
でそれを知らなくて、英語にしたら、6GBのダウンロードが始まって、
ちょっとあせりながらも頑張ってダウンロードされるの待って、英語になった!
と喜んで、そこでやめておけば良かったのに、
日本語切り替え簡単にできるのかなーって思って日本語に切り替えたら、
またダウンロード始まったので、ようやくこれはおかしいだろjk...
と言うことで検索したら上記の用な仕様になってました。
結局、日本語->英語->日本語->英語と
計4回もダウンロードしちゃった(・ω<)☆テヘペロ
ほんとテヘペロじゃ許されないよ?
下手したらプロバイダから回線止められるよ?
インストール制限あったらオレ達の戦いは始まる前に終わっちゃうよ?
やっぱりゲームだとネタばれされたくないやん。
でも環境設定のとことか調べたほうがえぇね。
お勉強になった。
あと、自分はwindowモードでやるんだけど、windowモードにしたら
普通に上のバーをドラッグすれば移動できるやん。
で☆き☆ね☆ぇ
左上からレンダリングされてまじk(ry
もうねあれだね。冒険どころじゃない。
ほんと検索しまくり。
で、解決策は、
C:Users***DocumentsMy GamesSkyrim.iniの
[Display]
iLocation X=左端からの数値(ピクセル)
iLocation Y=上端からの数値(ピクセル)
上記の[Display]にこの2つの値を入れれば解決。
これでやっと冒険に出られるぜ!
なんか熊いるからsneakしろ言われたけど、
脳筋バトルアックス両手持ちなんで殺しちゃった(・ω<)☆テヘペロ
オレたちの戦いはこれからだ!(まじで...)
気に入ったら押してね
~こんなアプリ出してます~
php
2012/01/18 04:36:00Noranekoです。
久々にphpをごにょごにょしてて、はまったので
ヽ(`Д´#)ノ ムキー!!となっておりました。
ここ1年ずっとjavaを触っていたので、まるっきりphpを忘れてた。
多次元配列についてほんのり書きましょう。
まず$をつけないで怒られて、arrayを{}で書いて怒られてと、
この歳で怒られまくり(ゝω・)vキャピ
実はこの記事一回書いて、書いてる途中で自分のミスに気づきました!
急いで内容消して、この記事を変更!
ミスったところを書くと、
$a[]=array(0,1,2,3);
$b[0]=array(10,20,30);
$b[1]=array(10,20,30);
for($i=0; $i<3; $i++){
for($j=0; J<3; J++){
$a+=$a[i][j];
}
}
$b[0]=array(10,20,30);
$b[1]=array(10,20,30);
for($i=0; $i<3; $i++){
for($j=0; J<3; J++){
$a+=$a[i][j];
}
}
$aを1次元配列として定義してたつもりが、これ2次元配列なのよね。
で、6行目で2次元配列の要素と1次元配列足そうとしてたお話でした!
そりゃphp先生も
Fatal error: Unsupported operand types
ていう見慣れないエラー出すっちゅう話やで!
気に入ったら押してね
~こんなアプリ出してます~
Androidアプリを作ってみましょう!
2012/01/09 16:56:00いやほんと1次会で帰る気まんまんだったのに、
気がついたらカラオケにいて、家帰ってきたのが02:00とか…
しかも3次会組もいたな…
今日仕事って言ってた人もいたのに、みんなタフすぎワロタ
ということで、Androidアプリを作ってみましょうでございます。
まず必要なものとして以下を揃えましょう!
1.机
コタツでも可。
2.椅子
座椅子でも可。Aeron Chairなら尚良。
3.パソコン
情強と言われるためにも、i7-2600以上のCPU、16GB以上メモリ、GTX580(SLI)
を最低基準としましょう。
4.モニタ
FPSで勝つる為にも応答速度が速い物かつ、27inc以上にしましょう。
5.インターネッツ
ムフフな動画などを見るためにも、100Mbps以上の最強回線を探しましょう。
6.無線LAN
トイレからもコーディングできるように無線LANを設置しましょう。
7.クレジットカード
Android Marketに登録する際に必要になります。
※企業用アプリや個人でアプリを使う際には、登録は不要です。
ここがiPhoneと大きく違うので、スマートフォンやタブレットを使った
企業用アプリの開発が、大変容易です。
Androidアプリをコンパイルすると、binの中に『xxx.apk』と言うファイルができるので、
それをインターネット上にアップしてダウンロードすればインストールできます。
以前Basic認証をかけたところにアップロードしたのですが、インストールできず、
同様の記事を見かけたことがあります。
8.布団
快適な睡眠がとれるようにしましょう。西川なら尚良。
以上を揃えたら、『Android 開発』でぐぐりましょう。
出てきたサイトをじっくり読み、もろもろをインストールし、準備しましょう。
そしたら、Eclipseを起動して、
File->New->Android Projectを選択します。
すると以下のような画面になるので、
1.Project name
アプリ名ではありませんので、好きな名前を付けて大丈夫です。
2.Build Target
使いたいAPIなどが特に決まってない場合は、『1.6』もしくは『1.5』で大丈夫です。
3.Package name
他の方のブログで結構軽視されてますが、かなり重要です。
Android Marketでこの値が一意となり、アプリを認識するので、
ドメインを持ってる方はドメインを絡めた名前にするのがよろしいです。
Android Marketにて、
https://market.android.com/details?id=xxx
のxxxに当たる名前となります。
4.Finish
以上、1~3までの工程を終えるとクリックできるようになり、プロジェクトが完成します!
お疲れ様でした!
次回はまた気が向いた時に、続きを執筆したいと思う今日この頃ですが、
早めにTwitter4Jのことを書こうかなと。
気に入ったら押してね
~こんなアプリ出してます~
Androidの解像度について
2012/01/09 16:56:00前から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』に画像がある為です。
このようなゲーム画像を表示したい時にも対応できます。
多分…
なんか今調べたら、540*960や1024*600という変な解像度がいっぱいある…
せめてアスペクト比を統一して下さい・・・
気に入ったら押してね
~こんなアプリ出してます~
BLOG内検索
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 |
カテゴリー