Androidプログラミング質問スレ revision43
1 :
デフォルトの名無しさん :
2014/05/21(水) 21:42:14.59 ID:rO/ceJjb
色眼鏡で見すぎだろ・・・ちょっと可笑しいぞコイツ。
999 名前:デフォルトの名無しさん[sage] 投稿日:2014/05/21(水) 16:51:19.90 ID:HFTvODFO [2/3]
>>998 反対意見が多数あるとみせかける行為としては意味あるかと
PCのダブルクリックのようにダブルタップでトップのアイコン等を選択できるようにしたいのですが、何かいい案ありませんか? ・今のところwindowmanager使って一度目のタッチはビューに座標を渡す。 ・二度目が同じ場所ならFLAG_NOT_TOUCHABLEに変更する。 これで下位に伝える方法をとってみたのですがフラグを変更した際のクリックは下位に伝わらない用で三度目のタップが必要になってしまいます。(しかも3度目はどこでもシングルタッチで伝わってしまう状態) 案があればよろしくお願いいたします。
メインではない別のクラスにActivityクラスを継承させて キー入力の処理させることっていうのは不可能? メインのクラスで、そのキー入力処理クラスのメソッドを呼び出す、 という方法が最適?
>>3 自分でタッチの処理をすればいい
1回でも2回でも3回でも4回でも...思いのまま
タッチ間の時間も思いのまま
自分のアプリから、別アプリを起動したい場合、 パッケージ名は、getPackageName()で取得するとして、 インテントに指定する、「クラス名」は、 どうやって取得したらいいのでしょうか?
パッケージ名だけで起動させるんじゃだめだなの?
8 :
3 :2014/05/22(木) 12:30:47.08 ID:mnwDWx3x
>>4 ありがとうございます。
常に動いていて欲しいのでServiceクラス上で処理したいのですができるのかな??
>>5 その手がありましたか、onTouchEventのコード探してみます。
androidを始めて間もないので見当違いなこと言ってたらすみません。
OnDoubleTapListenerとかGestrureDetectorとかじゃだめなの?
10 :
3 :2014/05/22(木) 22:22:13.17 ID:mnwDWx3x
>>9 実はダブルタップの時間間隔を長めに取りたいというのもありまして、
調べてみたところいじれそうにないので難しいですね。
ViewConfigurationから引っ張るようにされてるのに変更できないのか。糞だな
12 :
3 :2014/05/23(金) 18:17:33.70 ID:ii9vREdk
dispatchTouchEventでタッチを発生させてみたのですが下位は反応しませんでした。 View.dispatchTouchEventだとFLAG_NOT_TOUCHABLEでも伝わらないんですかね・・・手詰まりです。
SpannableなTextViewひとつにHtmlでリンクテキスト埋め込むとか
AlertDialogは dismiss() で消せますが AlertDialog.Builderは dismiss() が使えなくて消せません。 AlertDialog.Builderの方を消すにはどうすればいいでしょうか? (BuilderでないとsetPositiveButtonの設定ができません)
AlertDialog.Builder:create()でAlertDialogを作ってるんじゃないの? できたAlertDialogをdismiss()すればいいだけだと思うけど
AlertDialog.Builder:create()でないとsetPositiveButtonの設定ができないのです。
訂正 AlertDialog mAlertDialog; こちらがAlertDialog.Builderでないと setPositiveButtonの設定ができません。
>>16 多分根本的にbuilderがなんなのかを理解してない
そうでなくて AlertDialog mAlertDialog = new AlertDialog.Builder(this) .setPositiveButton("Cancel", null) はできても mAlertDialog.setPositiveButton("Cancel",new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); に置換えたとたん型が違うのでできませんエラーになります。 別の言い方では AlertDialogではsetPositiveButtonの設定はできないのでしょうか?
すいませんできたようです。 微妙な勘違いをしていました。
解決したのなら、その内容をある程度詳しく報告することが 質問者のモラルだよ
単純なミスです。 mAlertDialog.setPositiveButton("Cancel",new DialogInterface.OnClickListener() {}; を .setPositiveButton("Cancel",new DialogInterface.OnClickListener() {} の記述形式にしてなかった。あまり意味が無い内容です。
23 :
3 :2014/05/24(土) 16:59:14.91 ID:d0+DTYnL
どうにかして他画面で使えるタッチイベントを生成する方法ないですかねぇ・・・。
俺的メモ SDK_ROOT/sdk/tools/lib/x86配下のswt.jarを64bit用のswt.jarと入れ替えることで、 android SDK Managerが、Windows7 64bit環境で起動できる。 swt.jarの64bit版は、eclipseの本家から入手できる。 以上
元々有るUIを使わないで独自UI作成ではまる、まあ良く見るパターン あり物を使うか全部自分で書くか好きな方を選ぶがよい
トップのアイコンってホームアプリのアイコンの話か? だったら無理だわ
でもandroidのUIなんてカスタム前提じゃないか
28 :
3 :2014/05/24(土) 17:49:41.40 ID:d0+DTYnL
>>26 そうです、やっぱムリカナー
2度目のタッチの時にdispatchTouchEventで同じ座標をもう一回タッチしてやればいけるかと思ったんですけどね
サーフェイスビューを使ってゲームを作りたいのですが、 画面内にpspや3dsのような、アナログパッドのような入力部分を作り出すことは可能でしょうか?
>>29 タッチ座標拾って中央からのズレの度合いで判定すればいい。
>>28 ・dispatchTouchEventはイベントを発生させるものじゃない
・他のアプリへイベントを発行するのはroot化が必要
>>31 ありがとうございます、勉強になりました!
でも悔しいのでもう少し別の方法を考えます。
自分のアプリだけでいいなら、初回起動無視すれば?w
34 :
3 :2014/05/24(土) 21:14:46.19 ID:ROh879dh
ブラウザとかでもダブルタップにしたいんですよね、逆に1回目のタップを無効にする方法はないものか…
そこまで来たらソースのあるホームアプリを改造だろうな
一回目のタップを無効にするとスクロールするのにもダブルタップから開始しないといけなくなるけど、そんなもの誰が望んでるの?
>>30 なるほど、ありがとうございます。
初めてなものでそういったことが考え付かなかったですー
38 :
デフォルトの名無しさん :2014/05/25(日) 09:07:45.49 ID:IgFiQVEM
Androidスレ勢い落ちたな
移転したの気がつかず新しい書き込みないなーって思ってる奴がけっこういると思う 俺も1日そんな感じだった
教えてほしいんですが フォルダ作成に Environment.getExternalStorageDirectory().getPath() でパスを取得して、その後フォルダを、作成して ファイルを作成して保存したのですが デスクトップからそのフォルダを見ると 中身が無く ES ファイルエクスプローラで見ると sdcard0というショートカットフォルダ に作ったフォルダが出来上がってました。 で、質問はというと デスクトップにつなげた時にも 見れるフォルダを作成するには どうしたら良いのでしょうか? 使ってるデバイスは、Nexus7 です。 どなたかご教示願います。
>>40 デスクトップから見れるフォルダってのがよく分からないけど、内蔵ストレージのことならMTP接続で見れるよ。
昔のスマホにあったようなUSBマスストレージ接続みたいなのはできない。
最近のってマスストレージできないの?俺の4.3のはまだできてる
MTPだと引っ張ってこれないファイルがあるから用途によっては使い物にならない
マスストレージだと
>>40 が言ってるような透明化が起きて読み出せないことがある
正直よく分からないから俺はSDカードを直接PCにつないで吸い出してるわ
>>42 シャープとかみたいに自社のHDDレコーダーのお出かけ転送に対応してるような機種は最近のでもマスストレージ接続できる。
ARROWSとかはできない。
Nexus7はそもそもSDカードがない。
まあファイルのやりとりはSMBクライアントが一番手軽でよいね。
mapsを使いたくてGoogle APIsを入れる ビルドターゲットをGoogle APIsに設定する mapsクラスのインポートエラーは無くなるが パッケージに赤いビックリマークが出てビルド出来ない エラー内容は、存在しないeffects.jarを参照しています libsフォルダを見たらmaps.jarはあるけどeffects.jarがない ダウンロード失敗してるのかな 教えてくださいイケメン様
Surfaceviewにて ビットマップのアニメーションを行いたいのですが具体的にどこをどういじればいいのでしょうか? drawBitmapを弄るんだとは思うんですけど Canvas.drawBitmap(ビットマップ型,rect型,rect型,null); みたいにしていますができません。 調べてみてもビットマップの切り取りを紹介してるところがなかったのでよろしければ教えてください
書籍やWebのサンプルコードって 匿名クラスやらstaticな内部クラスやら、マニアックな文法がちりばめられて載ってますけど みなさんこれが裏で何やってるかとかわかって作ってるんですか? よくみかけるブログのどこからか引っ張ってきたコードなんて充分な解説もない 私の知識で自己流で作ってたらメモリリークしそうで怖いんですが…… 内部クラスや匿名クラスの文法がわからないのではなくて、なんでどこどこで使うのかわからないんです まぁわかってないということなんですが…… どうやったら皆さんみたいに深く理解できるようになるんでしょうか?
>>45 1枚の静止画を描く処理をタイマーで短時間に何度も呼べばアニメーションになる
>>46 今の時代、そんなもの把握して使ってる奴なんてまずいない。理解できてる気になってる奴は多いがw
どういう命令があって、どういう目的向けで、どうやれば使えて、どういうところに注意するべきなのか、
ってのをとにかく覚えるしかない
特に最初は「どういう命令があるか」。命令っていうのはメソッドやクラス。
プログラムなんて同じ処理でも作り方は無限にあるんだから、どういう命令があるのか覚えてる数が多ければ多いほど、
効率は悪くても、思い通りの処理を作れるようになる
メモリリークなんて最初は気にするな。気にするべきだけど、そんなの恐れるのはある程度出来るようになってからでいいよ
>>46 とりあえず動けばいいんだよ
メモリリークよりそのアプリが役立つか面白いかの方が重要
>>46 大学の情報工学程度の知識がないと、完全には理解出来ないと思います。
解決方法は、もっと時間を掛けてプログラム全般の勉強をするしかないです。
出来ればJava以外の言語も…。
まずは趣味程度に割り切って、楽しくモノを作ってみればいいんじゃないかと。
そのうちに業務用のアプリを作ることになったら、また考えてみて下さい。
いやstaticな内部クラスが原因のメモリリークはJavaの言語仕様分かってりゃ十分理解出来るだろ
>>50 逆じゃね?
staticじゃないと親クラスのメンバへアクセスするために自動的に参照が貼られるから自力でweakにしないといつまでたってもGCされないというケースに陥る
まあVM次第だけど
>>47 学生時代に原理がどうなってるか考えすぎて結局肝心な物が作れなかった経験があります
おっしゃるとおり 何がしたいのか・このライブラリの使い方は?・この関数は何をしてくれるの?
こういったことを把握していたら『とりあえず』動く物は作れると思うんです
ただ肝心な箇所を見逃していたらトラブルの種となるというかなんというか
Webアプリケーションでいえばフレームワークに頼りっきりでXSSやSQLインジェクションも知らずに作ってる人がいれば恐ろしいですよね
自分用のアプリなら迷惑を被るのは私ですので好きに作るのですが、他人に使ってもらうような物を作るのはどの世界でも難しいですね
>>48 個人用でしたら私もそう思います
>>49 有名な大学ではないですが情報系の学部卒です
なんといいますか、どの言語でもライブラリや基盤のような物を作ってる方々はほんとに尊敬します
条件式の判断の違い(とくにPHP)など言語にそれぞれ微妙なクセはあるもののプログラムってほとんど同じような物だと思います
ただ何と言いますか、それをどう組み合わせるのかがよくわからんのです
例えばプログラムをどのように勉強すればよいのでしょうか?もしよければ教えてください
長々とすみません
>>50 レス見落としてました失礼
手持ちの「Effective java」には内部クラスはstaticが推奨される ようなことが書いてあった記憶があります
>>51 さんの言うとおりstaticでない内部クラスはそのクラスを内方してるクラスへの参照を持ち続けるのでGCに回収されないかと
詳しくは知りませんが
>>52 言語よりまずアルゴリズムを勉強し直したら良いと思う。
情報系ならもうそういう教材はあるはず。
>>53 でもまあ、Androidの場合は4.0あたりから自動的に弱参照になってる気がするし、プロセスが死ねばメモリリーク部分も殺されるので、それほど気を使う事は無いと思う。
一言で言うと、向いてない、と思う。
メモリーリーク話になるといつもグダグダで無駄に伸びて まともな回答ビシッと出来る奴いないよな フィニッシュに参照全部切っとけでいいだろ終了
>>52 >ただ肝心な箇所を見逃していたらトラブルの種となるというかなんというか
それはみんな通る道
個人だったらとにかく色々なソフトを作って公開してトラブルを経験して解決してそのノウハウを貯めるしかない
>>57 アクティビティはインスタンスレベルで自殺できないだろ、だからみんな悩むんだよ
Kindle HDとかいう糞は、onDestroy呼ばれた後でもシステムがActivytyクラス参照し続けるし
切る物全部切って終了すりゃActivity残っても抜け殻だろ、終了
メモリークリーナーでもクリアできないメモリがあって 再起動するとがっつり容量が空くことがあるから アプリ終了時にしっかりメモリ解放処理してないアプリはけっこうあると思う
>>60 Activyty側で切っても元々循環参照してたら意味がない罠
だから不用意にContextとか他のクラスに渡したく無いんだけど渡さないと処理できない事が多すぎる
俺らがグダグダしてるんじゃなくて、Javaが弱参照と強参照の明示に対して消極的な仕様なのがグダグダしてんのよ
>>61 それ単にJIT機能がキャッシュしてる領域じゃないの?
ほっとけば使われないやつはそのうち消えるから、タスク殺すだけのメモリクリーナー実行直後に空き容量を見て一喜一憂しても意味がない
循環参照も切れるようにしとけよ
onDestroyした後に元妻に参照され続けるダルビッシュ…とか想像してしまったw
windowmanager.addView(view1,param); windowmanager.addView(view2,param); これでview1とview2は重なった位置関係なんですけど 両方のタッチイベントを取得するにはどうすればいいんでしょうか?
Fragmentの使い方、使い所など解説してる入門書はないでしょうか? ネットの情報だといまいちわからず、まとまった情報として読みたいのですが
日本語ではない
>>52 ま た お 前 か
前ここで原理主義主張してた人でしょ?
キミが求めている事は「どう勉強したら」身につくものではないの。
経験年数を獲て徐々に身についてくるものだと100%いいきれる。
20近く前のレスにわざわざレスして、 消えかけていた話題を掘り起こしたいの?
うん!
>>61 サ エ コ 『ドブスが金づるを手に入れる7つの方法』 って本を出せそうだな
fragment within fragmentができるようにならないかな fragmentを毛嫌いしてたけど使ってみたらいい感じって人多そう
>>68 そうですか 残念です
WebでFragmentとActivityの使い分けをずっと調べてて貴重な休みを丸一日消化してしまった
もう3〜4画面だし全部Activityでいい気がしてきた
手持ちの本にはFragmentについて全然書いとらんし、近くに大型書店はないし、amazonは中身みれないしでキツイ
おすすめの本みなさま方教えてちょうだい
公式のtrainingでfragmentbasicってサンプルアプリがあるからまずはそれのソースコード見てみては?
プリファレンスだけFragment使うようにしたけど(なんかのメソッドが非奨励になってる) 他はActivityでいいんでない
Fragmentってバックスタックの管理が面倒な気がする
>>74 >fragment within fragment
できない?
それとも俺が示されている状況を勘違いしてる?
xmlレイアウトでは無理なのは確かだが。
Fragmentの入れ子とかでググればけっこうドバドバやり方出てくるけどな 入れ子したい場合はFragment内のgetChildFragmentManagerを使う 入れ子自体高APIから対応だけどもv4使えば後方互換できるよ
>>80 え、そこに書かれているの読んでみたけど、むしろ俺と同じこと言ってるよ?
サポートしてるよ。でも、xmlはだめだよ、って。
4.2(Support Library rev 11)からだと書かれてはいるけど。こちらはむしろ知らなかった(忘れてた)。
んん?
しかし、フラグメントネストしている俺のアプリ、minSdk 9 にしてあるんだけど、大丈夫だったのかな?
小さい秋ってのがあるが、こちらはどうでもいいような小さい勝ちだな
>>84 正直、全く勝つ隙一つすらないと思っていたので、むしろ意外だった。
標準のFragmentとv4のFragmentは一応別物だしな
>>83 SupportLibrary使えばいけるのか
ちょっとやってみるわ
サンクス
教えて下さい。 main.xmlに、framelayoutが上下二つあり(上がA,下がB) Aには、ボタンが並んでいて Bの中にviewgroupが入ってます。 そしてAのボタンを押したら BのframelayoutにaddViewで自作Viewが追加され そのViewで処理が終わった後 バックボタンをクリックしたら removeViewした後 Bの中にアイコンが追加表示されるように したいのですが、removeViewした後に Bを invalidateしても、表示されません。 で、一度アプリを閉じて 再度アプリを実行したらBにちゃんとアイコンが追加表示 されてます。 これを、バックボタンを押した時点で、アイコンが追加表示 されるようにするには、どうしたら良いのでしょうか? どなたかご教示願います。
89 :
デフォルトの名無しさん :2014/05/27(火) 12:16:33.47 ID:8/1KI96u
2chmateで更新するとき上部のバーに読み込み状況の進行を表すゲージが出るけど ああいうUIは普通のプログレスバーで実装するの?
人それぞれ
ソケット通信で受信したバイナリファイルをAndroid端末に保存するには、どのようにすれば良いでしょうか。 以下は、現在の未完成のコードです。 InputStream in = new BufferedInputStream(socket.getInputStream()); OutputStream out = new BufferedOutputStream(openFileOutput(file, MODE_APPEND)); int len; while ((len = in.read()) != -1) { out.write(len); }
>>91 何ができないのか書け
・書き込みパスの取得
・マニフェストの権限設定
・ファイルへの書き込み処理
・ソケット通信処理
これらができたらあとは組み合わせて書き込むだけ
93 :
デフォルトの名無しさん :2014/05/27(火) 15:38:10.54 ID:d3NLCgNr
スレ違いかもしれないけどGooglePlayへのうpについての質問するところってどこかにありますか?
>>92 >・書き込みパスの取得
書き込み先のディレクトリとファイル名と言うことでしょうか。
それについては、openFileOutputを使うことで解決していると思っていましたが、間違っているかもしれません。
>・マニフェストの権限設定
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
を追加しています。
>・ファイルへの書き込み処理
in.read()のあたりで止まっているようです。
>・ソケット通信処理
接続先のPCに接続できていることは確認しています。
接続元(Android)のIPを表示させて確認しました。
また、PC側で読み込みと書き込みが終了していることも確認しています。
outを宣言した直後、in.read()の直前、in.read()の直後、catchの4箇所で、デバッグ用のメッセージを表示させるようにしました。
その結果、in.read()の直後とcatchのメッセージが表示されません。
よって、in.read()あたりに問題があると推測しますが、如何でしょうか。
なお、コンパイル時も実行時もエラーは出ていません。
>>94 >書き込み先のディレクトリとファイル名と言うことでしょうか
>・マニフェストの権限設定
書き込み先のフォルダとファイル名のこと。SDカードに書き込むならその権限
>in.read()のあたりで止まっているようです。
>・ソケット通信処理
まずはソケット通信なんかしないで、固定のバイト配列をファイル書き込みできるか確認
次にファイル書き込みなんてしないでソケット通信が正常にできるかを確認。通信内容の出力はデバッグログでもtoastでもなんでもいい
>in.read()あたりに問題があると推測しますが、如何でしょうか。
ソース見てないから知らね
とにかくまずは処理1つずつを切り出して確実に動くことを確認する。できたらあとはそれを組み合わせるだけ。
それで動かなかったら組み合わせ方が悪い。1ステップずつやらないといつまでたっても動かないよ
この手の質問は質問者の思い込みでフィルタリングされてる情報があって、 そこが原因でしょうもない結末になったりするから、簡単には食指が動かん。 サンプルとなるプロジェクトをアップローダーにでも上げてくれれば一発解決するんだろうに。
98 :
91 :2014/05/27(火) 17:35:04.84 ID:tqvORO0Y
皆さん、ありがとうございます。
現状を説明します。
書き込み先は、アプリのデフォルトのフォルダ(?)です。
ソケット通信については、DataOutputStreamを使って文字列を送ることに成功しています。
ファイル書き込みについては、苦戦中です。
とりあえず、ご提案通り、サンプルプロジェクトを上げようと思います。
……が、色々といじりすぎて見にくくなっていたため、調整中です。
暫くお待ちを。
>>97 のリンク先については、サンプルを上げてから解読する予定です。
毎度長文失礼。
>>98 サンプルについては該当機能に関する部分だけを別の新しいプロジェクトとして作った方がいいと思うよ。
他人に知られたくない情報まで公開する必要はないからね。
100 :
91 :2014/05/27(火) 18:05:38.68 ID:tqvORO0Y
101 :
91 :2014/05/27(火) 18:10:11.18 ID:tqvORO0Y
>>99 最低限の部分に限定してみました。
これで動かないので困っています……。
>>100 の補足
protected String server = "127.0.0.1";
protected int port = 50000;
の部分については、実行される環境に合わせて書き換えていただければと思います。
102 :
91 :2014/05/27(火) 19:22:50.60 ID:tqvORO0Y
連投失礼。
もしかしたら、解決してしまったかもしれません……!
まず、
>>97 さんの助言を参考に、BufferedInputStreamを外しました。
それから、
int len;
byte[] buffer = new byte[1024];
while ((len = in.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
のようにバッファを作ってみたところ、その後の
textView.setText("Finished");
が実行されました。
本当にファイルが出来ているかどうかはわかりませんが、私用のため、席を外します。
また後程検証します。
>>68 初心者向けではないけどMaster of Fragmentってのが電子書籍であるから読んでみたらどうでしょ。
>>102 まあ無理だろうね。BufferedInputStreamなんかこの件とは全く無関係だし。
Socketのことわかってないのに、なぜSocketでやろうとするの?
SocketがわかっていないのならURL.openStream()でも使うべき。
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
package com.example.testsocket;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.Socket;
import android.app.Activity;
import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.widget.ImageView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final String path = getExternalFilesDir(null).getAbsolutePath()+ File.separator + "2ch-logo.gif";
final Handler handler = new Handler();
final Context context = this;
new Thread(new Runnable() {
@Override
public void run() {
//
http://www.2ch.net/2ch-logo.gif の取得
Socket sock = null;
BufferedInputStream in = null;
BufferedOutputStream out = null;
try {
sock = new Socket("www.2ch.net", 80);
in = new BufferedInputStream(sock.getInputStream());
sock.getOutputStream().write("GET /2ch-logo.gif HTTP/1.1\nHost: www.2ch.net\n\n".getBytes());
out = new BufferedOutputStream(new FileOutputStream(path));
int len;
int bytes = 0;
while ((len = in.read()) != -1) {
// このifの条件節は良い子は真似しちゃ駄目。このサンプルでしか通用しない数値。
if (bytes++ > 247) {
out.write(len);
}
}
out.flush();
} catch (IOException e) { e.printStackTrace(); } finally { if (sock != null) { try { sock.close(); } catch (IOException e) { e.printStackTrace(); } } if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } if (out != null) { try { out.close(); } catch (IOException e) { e.printStackTrace(); } }
handler.post(new Runnable() { @Override public void run() { ImageView imageView = new ImageView(context); imageView.setImageURI(Uri.parse(path)); setContentView(imageView); } }); } }}).start(); } }
OpenGLとかAndEngine(フレームワーク類)を使わないで画面内にエフェクト(タップされたらその辺りがほんのり光るとか) かけたりするのって一体どうやって行えばよいのですか? 簡単な移動や点滅ならanimationで行えるのですが・・・。
>>108 はおそらく、
「パワポには凹のシェイプがないから、その形のイラストは作れません」
と報告する人。
>>108 Frameレイアウトで画面一杯に上にImageViewでも載せて、そこにゴリゴリdrawしたら
androidの有料アプリについて教えて欲しいんですが 開発者がアプリのアップデートを行なった場合、以前のバージョンの購入者の扱いはどうなるのでしょうか? まさか再びお金を払わないといけないということはないと思うのですが…… ・マーケットにAというアプリを公開する ・ユーザが購入する(この時点でアカウントとアプリが紐づけされる) ・アプリAは不定期にアップデート続けるが、アップデートしてもAはAである こんな理屈でマーケットのシステムが管理してくれていると思っているのですが、プログラミングの側で制御しないといけないことなどありますでしょうか?
>>107 (1)有料アプリの場合はアカウントにヒモつけ
アップデートにかかわらず何回でも永久にダウンロードできる
また、同じアカの複数の端末にもDL出来る
(2)アプリ内購入の場合は作者お意向次第
色々な事由でで使用不可にする事も出来るし、(1)のようにも出来る
ユーザーは新しいバージョンを使うこともできるし、古いバージョンのままにすることもできる だから特に鯖と通信させる場合は 古いバージョンと互換性をもたせるか、 古いバージョンを弾いて強制的にユーザーにアップデートを促す処理のどっちかが必要になる この辺は有料アプリも無料アプリも一緒だから、有料だから制御が増えるってわけじゃないけど・・・
>>112 なるほど、紐づけということを教えて頂いてありがとうございます
(2)は何か問題が起きそうで難しそうですね 調べてみます
>>113 たしかに外部と連携するなら各バージョンの挙動など細かく把握しておかないといけませんね
通信するアプリを作成する際の参考にさせて頂きます
ありがとうございました
>>108 めっちゃ重くなりそうですね・・・
やってみます。ありがとうございました。
Androidで開発アプリを実機にインストールした時のアイコンの下に出る名前はどこで変更できるのでしょうか?
そういう事はマニュフェスト辺りじゃね
>>118 少し調べれば分かるけれど教本の類いには載ってないことが多いな
Manifestやらxmlの編集でどうUIを変更するかはネットで得た知識が大半
最近は未来参照がはやりですか
>>120 PCで見るとスレ番がずれてる
何でだろう
JaneStyleなのだが再読み込みしたら正しくなった おかしいアンカーをつけてるんだなぁ って2〜3日思ってた
「Surface Pro 3〜?」と思って調べてみたらネットでの前評判は確かにかなり高いし性能もいいな・・・ WinWinのノートPC買うくらいならこっち買うかも Corei5+4GB+256GBストレージバージョンがもう少し安くなれば尚良いんだが・・・・ 開発機にすればAndroidアプリとこれから来るかもしれないWindowsアプリのマルチ展開出来て面白そうかもねこれ
誤爆した・・・orz
kitkatよりアプリからのSDカードアクセスが制限されたって本当?Galaxyとかはこの仕様に対応して、あるアプリは書き込みの問題が出るようだけど試した方います?
kitkatについてはnexus7で動いてたから安心してたけど、内部ストレージ扱いだったからなのかなぁ。将来的には自分でも白ロム買って試そうとは思ってるけど、大してもうかってるアプリでもないので
内部ストレージは読み書き出来るけど 外部ストレージ(sd)はアクセス不可能になるって告知があったよな
>>130 何だそりゃ。アプリで使えないなら、SDは何に使うことになるのかな
SDカードにはアプリのパッケージ名のフォルダができてそこだけ書き込みとかが自由になるっぽい ファイル管理系のアプリは対応が大変そうだな
外部ストレージは標準のファイラーアプリでのみ自由に書き込み可能 読み込みはどのアプリでも可能 標準ファイラー以外のアプリからはそのパッケージ固有のディレクトリ以外書き込み不能 採用した理由は、 外部ストレージに保存されたデータを保護するため アプリがアンインストールされるときにシステムがファイルをクリーンアップするため え、みんな知らなかったの? Kitkatのユーザーはみんな文句タラタラで嘆いているよ
Androidは自由が売りだ、SDカードに自由に保存もできると、 自由で差別化をはかってきたAndroidが、 どんどんガチガチにGoogleの後だしルールでiPhone化していく
startActivity() または startActivityForResult()を繰り返し呼んでみると、最初はうまくいき 何回目かでこのエラーがでてダイアログが消えて強制終了するんですけど [BTUI] setPropertyString : key(Discoverable) value(false) E/DTUN_HCID4(29237): ...dtunops_set_limited_discoverable unimplemented!!! これはどういう意味でしょうか?
137 :
デフォルトの名無しさん :2014/05/29(木) 23:28:13.05 ID:WytemDOF
>>134 あれ、パッケージ固有のディレクトリなら外部ストレージ上でもパーミッション無しで書き込めるようになった、じゃなかったっけ?
メジャーどころのファイラーはもう対応してると聞いたが。 QuickPicsとESファイルマネージャあたり。 これらが対応してりゃ他は別に必要ないでしょう。
すまん、QuickPicは対応してないみたいだ。
>>138 そう書いたけど?
>標準ファイラー以外のアプリからはそのパッケージ固有のディレクトリ以外書き込み不能
>>140 ESも無理だよ
っていうか、root取る以外無理だから
アプリで対応出来る問題ではない
ない、vold.fstabから一覧を取る
145 :
104 :2014/05/30(金) 18:13:32.78 ID:hSXVRS7S
たかが2chで見返りを求めてるお前も十分同類だと思うぞ。うん。
147 :
104 :2014/05/30(金) 18:24:52.52 ID:hSXVRS7S
>>146 いやその糞は2chだから見返りなんて必要ないと考えるサイコパス。
俺は違う。
そしてお前は奴と同類のサイコパスだぞ、そんなこと言ってるんなら。
サイコパスね〜 自分は正しい、間違っていないと主張し 自分に同意しない人をすぐに敵扱いにして見下し差別し(常に主観という狭さ)、自分は優秀だと たかだか2chで、しかもたった1回の事で騒ぐような人の事を言うんだとずっと思ってたよ
Javaの質問になったからJavaスレで聞いたんじゃね こっちで続けて聞けば聞いたでスレ違いだとか何度もうざいとか言うだろおまいらはw
ここに居るのはサイコパスではなくて気の小さい社畜ちゃん
サイコパスハッケーンしますた
サイコパスって言いたいだけやん
キモヲタハッケーンしますた
社畜って言いたいだけやん
>>141 パッケージ固有の外部ストレージのディレクトリはパーミッション無しでも書き込み可
それ以外に書き込むにはパーミッションが必要、なのかと思ってた
マルチユーザー対応とは別の話だよね?
getExternalStorageDirectryで得られるDirは内部ストレージでPCからUSB経由で読めてKitkatの書き込み制限仕様から対象外と考えていいのかな?? 聞きたいことが山ほどあって、やっぱ自分で検証するのが一番なのかも。。もう新端末はkitkat以上しかGoogleも承認しないみたいだし。
すまん、質問させて欲しい。 最近Android開発環境を構築していたんだけど、 以下のエラーがずっと解消できず、エミュが起動できなくて困っている。 failed to initialize monitor thread: unable to establish loopback connection ぐぐって以下の対応をしたが、改善できない。 1,abd,exeをキル、Eclipse再起動 2,各ファイアウォール無効化 3,eclipse.iniに以下の記述追加 -vmargs -Djava.net.preferIPv4Stack=true 4,Javaを7から6にインストしなおし とりあえず今はapkを直接実機にぶちこんで動作確認してるんだけど、ログが確認できないのでそのうち困りそうと思っている。 誰か解決方法知ってる人いないかな?
>ログが確認できないので はい、やり直し。
>>160 あ、もしかして実機でも確認できるん?
すまんな。ちと調べてみるわ。
>>158 そう、内部ストレージは自由に書き込みOK(アプリケーション固有の領域以外にアクセスする場合はパーミッション必要)
今回Kitkatで騒ぎになっている件は外部ストレージの話
いろいろ事情があったんだろうけど、メソッド名が紛らわしい。
windowsapi真似してこんな感じにすりゃいいのに string getSpecialFolder(ENUMFOLDERTYPE folder)
>>160 ,159
実機でログ出力の方法は分かったけど、よく考えたら根本的解決になってないな。
まあ海外の掲示板まで見てもきっちり解決してるの見ないし諦めて実機開発かね。
めんどいが、分かる人もいなそうだし、しゃーないな。
>>165 エミュをデバッグに使う人は少なくともプロにはいない
使っても画面チェックだけ
>>166 開発メインは実機なこと多いだろうけど、エミュでテストしないプロはいないだろ
そしてエミュで問題が生じたらエミュでデバッグする羽目になる
168 :
デフォルトの名無しさん :2014/05/31(土) 14:36:22.36 ID:rU+55DWF
ListViewの高さを調整したいんですけど・・・ LinearLayoutに上から順に TextView、ListView、TextView、ListViewの順で並べいるんですが ListViewの高さが画面一杯まで広がってしまいます ListViewの高さは項目の分だけにしたいのですがどうすればできますか? ListViewの1項目の高さ × 項目数をListViewの高さに設定するという のを見たのですが、それをどこに実装するのかわかりませんでした。 知っている方教えていただけませんか?
つーかデバッグどころか開発環境構築中だろ
>>168 warp_contentsでできないっけ
>>168 読み間違えた
ListViewの要素の高さ計算してjavaでセット
オンタッチイベントでマルチタップを実装しようとしてるのですが、 二つ目に押したものがうまく反応しないみたいです。 何かいいやり方はないでしょうか?
>>170 それができない、と言うかエミュが起動できないってのがそもそもの質問だろ
>>173 >>二つ目に押したものがうまく反応しないみたいです。
そんな事はない
正確にはaction_moveが動作しないといった感じです
マルチタッチ非対応機と言う落ちだったり
すみません…解決しました。 ポインターIDとポインターINDEXについて理解できていなかっただけみたいでした
eclipseにandroidのソースコード落としてくれば普通いじれないような部分もいじれますか?
はい
OS作るつもりでしょうか?頑張ってください
ありがとうございます
androidのソースあっても、いじるのは難しいよ 修正自体は簡単にできても、その修正結果のバイナリを実機に適用させるのが難しい あれはドキュメント化されてない内部挙動を調べるためのもの程度に捉えておいた方がいいと思う
>>168 ListViewでlayout_weightを使うのはダメなの?
もしくは項目の高さを固定化してListViewの高さを決めてしまうとか
185 :
デフォルトの名無しさん :2014/06/01(日) 08:14:51.17 ID:KGIlkQba
>>184 回答ありがとうございます
ListViewの項目数は可変なので高さは決めれないのです。
画面イメージとしてはWi-Fi設定画面にあるWi-Fiネットワーク
が2つあるのを作りたいのです。
例えば、Wi-Fiネットワークのリストがあり、その下にBluetoothネットワークのリストがある。
Wi-FiもBluetoothも可変こんな感じの画面を作りたいのです
ListViewは高さ固定で中身をスクロールして表示するためのコントロールでしょ。 そもそも要件に合っていないよ。 LinerLayoutでadapterにinsertしていくか、 独自class作る方向で検討した方が良いと思うよ。
特殊な用途(ゲームとか)以外は画面の回転を禁止した方がいろいろと楽なんだけど ぶっちゃけスマホやタブをどうしても横にしたい(縦にしたい)って人はいるのだろうか? みなさんどうお思いよ 自分は強制される以外では縦がデフォなんだが
>>187 タブは横でスマホは縦が使いやすいと思う
>>185 両方を一つのListViewでまかなえばいいんじゃないの。
複数の種類のビューを各要素に入れるには、BaseAdapterのドキュメントに書いてある。
スレチでしたら大変申し訳ないです。 最新版のSDK等一式をインストールしたところ、仮想デバイス作成画面に「Use Host GPU」や「Snapshot」のチェックボックスそのものが表示されずに困っています。リモートデスクトップは使っていません。 ぐぐってみたのですが解決できなかったためこちらで質問させていただきました。「ここを見ろ」という情報だけでも大歓迎ですのでどうかよろしくお願いしますm(_ _)m
191 :
デフォルトの名無しさん :2014/06/01(日) 14:57:57.98 ID:KGIlkQba
Fragment使いこなそうと情報を集めてたが ブログや手持ちの書籍の本の情報がバラバラで目が回ってきたから 公式のトレーニングを最初の項目から順に読むことにした 英語は毛嫌いしてたが辞書片手だと意外と読めますな ただ、スピード遅すぎて泣ける
>>191 これはただのExpandableListViewだろ。
畳む必要が無いんだったら
>>189 の言うとおり1つのListViewでやれば良い。
getViewをoverrideして好きな行のheightを調整すればそれっぽく作れる。
でも、君には難しいと思ったから
まずはLinearLayoutで作ってみたら?と思ったんだよね。
ユーザに主に数字だけ入力させたい時、IMEを出さずに、画面に数字キーを独自実装するのはどの場合で妥当と考えられるでしょうか?その配置は電話か電卓どっちでしょうか? 今は郵便便号だけ入力させる画面を作りたいと思っています
キーロガーを回避するためにソフトキーを独自実装する といったセキュリティ面の話ではないのだとすると 独自実装はどんな場合であっても避けるべきだと思うよ。
普通にIME出した方がユーザーは慣れてると思うが そんなことに工数を費やす必要ないかと
独自UI組むこと考えるなら、俺なら通信せずに 入力に合わせてリアルタイムで続く可能性のある郵便番号の示す住所選択を出すようなの考えるな 郵便番号の更新データをどれだけメンテフリーで用意できるかが肝。めんどくせー
じゃあ電卓も標準のIMEを使うべきなんでしょうか
電卓はある意味キーデザインが命
電卓は数字文字列の入力が目的のものではないでしょ。 ズレてるよ。
201 :
デフォルトの名無しさん :2014/06/01(日) 22:51:01.54 ID:KGIlkQba
>>193 折りたたむ必要はないのですが、親グループ?をタイトル行として使用できそうなんです。
親グループのクリックイベントは無視すれば大丈夫かなと。
1つのlistviewでやるとタイトル行がなくなるし
バージョンによって挙動が違ったらいやなので
overrideしてheightを調整とかは最終手段として考えています
getView()をoverrideするとなんでバージョンで挙動が変わるんだ? タイトル行が作りたかったら 特定の行のときタイトルっぽく表示するようにgetView()を書くだけだと思うyo
折りたたむ必要がないならExpandableListView使うのはかえって面倒が増える気もするが 普通にヘッダ用意してその下にListView配置すればいいんじゃないのか
せっかくの回答を理解する気がないなら最初から質問しなければいい
てs
android.view.ViewRootImplを自分のプログラム内にimportしようと思い ソースコードの一部をDLしてきたのですが(platform\frameworks\base) ここから先どうやってeclipseにインポートすればいいのかわからず悩んでおります。 もしよろしければアドバイスよろしくお願いいたします。
>>195 横レスだけどメモリケチりたい場合は駄目か?
メモリ少ない端末だと、ブラウザで重いページ見てる時とか入力中にIME落ちて暫くIMEが消えたままになるんだよ。
そんな状態だと遠からずアプリ自体が落ちて終わるんだけどさ。
208 :
206 :2014/06/02(月) 14:57:31.51 ID:b8dkER6u
tp://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-2-hacking-around/ すいません、この手順で解決しました。
209 :
デフォルトの名無しさん :2014/06/02(月) 16:45:05.37 ID:Xz0aF/jF
質問です。 edittextから入力しようとするとソフトキーボードが出ます。 するとその分だけレイアウトがつぶれてめちゃくちゃになります。 アプリによってはキーボードが出てもレイアウトがつぶれずに普通に上に乗るように出て平気です。 何の違いがあるんでしょうか。 今まではレイアウトがずれなかったので気にしたことなかったのですが。
>>210 どういうことですか?
何か特別な記述があるわけでもないんですが。
スクロールビューに入れれば
>>210 いいIDですね
あ、今回スクロールビューつけてみたんですが、 それ取ったらレイアウト崩れなくなりました。 スクロールビューつけると勝手にレイアウトがresizeされるようになるんですかね。 原因がわかったので、なんか方法探してみます。
manifestのadjustPanとかadjustResizeとか そういう話ではないのか
manifestはいじってませんでしたので、スクロールビューが原因でした。 スクロールビューに android:isScrollContainer="false" ってのを付けたら解決しました。
win7 64bit android-studio-bundle-135.1078000-windows.exe jdk-8u5-windows-x64.exe の組み合わせで Failed to complete Gradle execution. Cause: Supplied javaHome is not a valid folder. You supplied: C:\Program Files (x86)\Android\android-studio\jre このようなエラーが発生します。 C:\Program Files (x86)\Android\android-studio\jreにjdkを置くと今度は Error:Execution failed for task ':app:compileDebugJava'. > Cannot find System Java Compiler. Ensure that you have installed a JDK (not just a JRE) and configured your JAVA_HOME system variable to point to the according directory. のエラーでRunできません… システム環境変数JAVA_HOMEにはC:\Program Files\Java\jdk1.8.0_05を設定しています どうすればうまく動くんでしょうか…
C:\Program Filesには置かないでC直下の方がいいYO
>>217 File -> Project Structureを開いて
SDK LocationのJDK locationとこに設定されてるパスが使われるはず
例えばうちだとこれが C:\Program Files\Java\jdk1.7.0_21 になってる
なにやらandroidはメモリ不足になった時にstaticな変数が書き換えられるやら、メンバが書き換えられるやら 不気味なことを耳にしたのですが、ちょっと特殊すぎませんかね 突然落ちるアプリを作ってしまいそうで怖い
223 :
デフォルトの名無しさん :2014/06/03(火) 16:18:29.30 ID:R+idYmOa
fromHtmlで埋め込んだリンクタグをクリックした時、 イベントを拾ってそのURLに飛ぶ以外の動作をさせるには? SpannableStringクラスとfromHtmlを併用で出来るかと試したが、 SpannableStringクラスにfromHtmlの戻り値をセットすると setSpan()を呼んだ時強制終了されてしまう
>>220 いつ停止しても問題なく続きから再生できるように設計する必要があるから
アプリの規模がでかくなればなるほど、難易度は高くなるよ
最初からサスペンド、復帰を前提に設計していかないと簡単に詰む。
タッチイベントをキャンセルさせることは可能ですか?
血が出ました
>>219 ありがとうございます
そっちもなおしたら解決しました
>>225 質問する時はターゲットデバイスとスリーサイズくらいは書け
2012年モデルのNEXUS7です。 スリーサイズは120 120 120
今、ゲームに特化したフレームワークつくってるんだけど 描画クラスの設計で Screenクラス(実際に画面に描画されるBitmapを持つクラス)と Screen.getGraphics()で取得されたGraphicsクラス(drawなどの描画メソッドを持つクラス) の2つにクラスを分けて設計しているのをよくみるんだけど 2つに分けるメリットって何だろう? Screenクラスにdrawメソッド持たせてしまえば Graphicsクラスなんて作らなくてもよさそうに感じるのだけど。
>>223 SpannableStringBuilderは?
メンバの情報が保持されないとなると、メンバ変数の情報がいつのまに消えることがある
それならその変数を参照する箇所でエラーがやたらと出るんじゃないかと思うんですけどどうなんですかね
>>222 お詳しいようで羨ましい
よほど努力されたんだと思います
>>224 なんか書店にあるような入門書籍にはあたり触りのないことしか書いてないし(なんかどれ読んでも「うん知ってる」みたいな)
何か作ろうとなるとandroidの仕組みが本当にややこしいのと、日本語の資料が少ないのとでしくはっく
公式のトレーニングを読破すればみなさんのように詳しくなれますか?
英語圏ずるいぞ Rubyやれってことか
>>231 仮想画面用を共通で使うからとか?
必要と感じないなら自分はScreenクラスにdrawメソッド持たせりゃいいじゃん
>>233 いや,別にそのへんの件に関しては日本語情報もけっこうあるだろ
普通のPC向けのプログラムと違って,Activityとかのライフサイクルを考慮して
作んないとちゃんと動かないってことだろ
俺は,「裏に回ったが最後消される可能性があるから,onPause()で必要な情報はしっかり保存しろ」
ってのは最低限守るようにしてるけど
表にずっといるのにメンバ変数が消えるような状況ってのは,そもそもメモリが足りなくなるような
書きかたをしないと起きないんじゃないか?
もっと正確に解説できる人カモン
Androidのプログラムはフレームワークから利用される部品を作るみたいな感じだよね 部品としてのルールを逸脱したコードを書いたときにどうなるかは自己責任
>>231 パソコンのJavaのAWTもそうなってた気がする
>>234 なんか2行目が面白いと思った
238 :
デフォルトの名無しさん :2014/06/04(水) 12:22:28.74 ID:ZyAtTD0c
ScrollViewを使用しているんですが。 ecripsのpreview all screen sizesで見てみると 予定通りに表示されている機種とScrollViewの部分がつぶれている機種があります。 表示画面が小さい機種だとつぶれている気がします。 調べてみたところ android:fillViewport="true"とするとつぶれない、との情報はあったのですが、変化はありません。 ちなみに親のLiniarlayoutは android:layout_height="0dp" android:layout_weight="3" のようになっています。 ecripsでつぶれているような機種は持っていませんでの実機でどうなのかはわかりません。 大き目の実機ではつぶれていませんでした。 どうすれば全ての機種で普通に表示されるでしょうか。
グッときたら それがトレジャーさ
すみません質問させてください androidで業務用アプリを作りたいのですが、 androidからSQLServerへ接続してデータベースからデータを取得したいと思っています JDBCはandroidをサポートしないとのことなのですが、ほかに接続する方法はないでしょうか? webアプリはほとんど開発したことがないので、できればネイティブで開発したいのですが、 どうしても無理ならwebアプリも考えいるのですが、どういった方法がいいのでしょうか?
「JDBC android」とかでぐぐってみたら?方法がありすぎて困るレベルだよ
業務アプリってことはきっと社内ネットワーク経由なんだろうけど、何かもにょっとするな
>>241 JDBCを利用してMySQLに接続する方法はたくさん出てくるのですが、
SQLServerをサポートしてなくて接続できても動作は保障できないとどこかで見たのですが、
そのままMySQLの方法を転用してもまずいってことですよね?
>>242 そうです社内ネットワーク内にサーバーがあります。
にょっとする?
>>243 モバイルデバイスからDBに直接繋ごうって考えが間違ってる。HTTPのAPIをはさめばいいだけ。
今更ながら、AIDL とコンテンツプロバイダーの用途の違いを教えてください
どこがわからないのかを明確にしてください
情報を教えて欲しいと言うならまだしも、「教え方」まで要求する
>>247 『馬鹿にはムリ』って文言がこの板にはあるのだが...
きみは『馬鹿』にさえなっていない 精薄センターにでも行くんだな
馬鹿に言われてもなぁ。
>>250 わざわざID変えてまで返信しなくてもいいと思うが…池波
どこがわからないっていうか、サクッと、こういうとき使うって教えてほしかっただけなんですけとね
>>253 知らない癖に横からですまんが
「この辺が似てるんだけどどっちにどういうメリットがあんの」とか言えばいんじゃね
他のアプリの最終起動時間をカウントしたいのですが何か方法はないでしょうか? APIには用意されていないようなので・・・ 1.端末の起動時間一覧みたいなところで表示されてるため そこで使ってるメソッドがhideなのでリフレクションで使おうとしたらSystemPermissionで使えず 2.アプリからLogCat監視してActivityManagerのアプリ起動時のログを検知ってやり方も 昔ならできたけど今は他のアプリのログが取れないので無理な様子 3.ServiceからRecentTaskInfoを監視するやり方でもいつ起動したかってのがわからない 3+LinuxコマンドでプロセスのCPU稼働時間みたらいけるかなと思うのですが、 てっとりばやくLinuxのどこかにプロセスの起動時間かまたは計算に使えそうな値は取れないでしょうか?
APIはパーミッションで制限掛けてるのに Linuxのコマンド直で叩けば取れたら、それはセキュリティホールでは?
>>257 プロセスの起動時間って書かれているのでたぶんこれでいけそうです
ここ見ながらちょっとやってみます
ありがとうございます!
短い文字列を頻繁に(自動で15分おきに)保存したいとします。 Perferenceに保存すると重いですか?他の滅多に書き換えられない項目と混在して書き出すと思うからです。 この文字列を保存するためのファイルを別に用意した方がいいですか?
自分で試してみたらどうですか
>>260 >>短い文字列を頻繁に(自動で15分おきに)保存したいとします。
この処理の方が重いと思う
業務用途で常に表で活動しているのならいいが...
eclipseを起動すると必ず右下のAndroidSDKコンテンツローダーが0パーセントのままで止まってしまい保管ができなくなります 以前はこんな事にはならなかったのですが… 同じような経験ある人いますか?
>>263 自動ビルドしてるとたまになる
自動ビルドを切るか強制終了して何度か再起動すると動く
>>263 eclipseをクリーンモードで起動してみてはどうかな
よくなる システムマネージャで強制終了して再起動するとたいてい直る その時にあちこち触らないでじっと待つ
タッチパネルでソーラー充電ができるアプリが前話題になってましたがあれってどうやってるんですか?
自己解決しました。
ユーザが値を選択し、その値からデータベースに検索をかけ処理したい場合 選択の項目数が極端に多い(500とか)場合ってスピナーでは使いにくいですよね? EditTextで直接入力してもらうべきでしょうか(AutoCompleteTextview) ただ直接入力してもらうにしても、人によってローカルな言い回しとかがあって、期待通りの値を入力してもらえるとは限りません 何か良い解決方法はないでしょうか?
プログラミングの質問以前の質問
>>270 その500とかの項目をカテゴリに分類して
ユーザにカテゴリを選択させて絞り込まれた値を選択するみたいな感じにするとか?
500もあるならカテゴリを階層的にして何段階か選ばせるほうがいいかも
273 :
デフォルトの名無しさん :2014/06/07(土) 18:20:41.51 ID:rcSz/BKL
ご教示願います。 Appwidgetprovider上で簡単なアニメーションを実現したいと思っています。 Widgetの性質上、電力を多大に消費することは分かっているのですが、例えばデジタル時計の数字のようにゆっくり数字が上下で変わるようなアニメーションを作りたいと思ってます。 AnimationDraw等ぐぐってみたのですが、いまいちどのような命令を使ったら良いか分かりません。 お手数をお掛けしますが、よろしくお願いします。
更新タイミングに合わせてimageviewで表示を次のフレームに書き換えるだけ
275 :
デフォルトの名無しさん :2014/06/07(土) 18:31:59.88 ID:rcSz/BKL
>>274 早速の回答ありがとうございました。imageviewとappwidgetproviderでぐぐってみたいと思います。
そこからかーい
>>272 なるほど
カテゴリのようなもので小分けにしたら確かに候補を減らせますね
ありがとうございました!
OSや端末関係なく候補が500もあったら選べるかーってちゃぶ台返しちゃうレベルだと思うわ
俺なら、★1個+罵倒+アンインストール
これからは、GDK + LLVM/Clang の時代だな。 しかし、ネイティブを使うようになるとJavaを使ってる理由がなくなり、グダグダの設計思想になるな。 ほとんどの実態がCで書かれる時代になるかな?
C#の時代来てもらいたいわ
一方グーグルはARTでLLVMだとさ4.4端末から使えるそうな
androidはARMとx86がそれなりの数あるし、nativeに寄るのは 得策じゃない気がするな
LLVM のバイトコードをJITで実行する手もある。 これだと機種は仮想化出来るからJavaバイトコードと使い勝手は同じ。 ARTは、その一歩だろう。 対象機種にインストールすると実行時とかいずれかの時点でネイティブにコンパイルすることも出来る。 良い解決方法かもね。 そう言えば、新しいWebkitには、LLVMのJavascript JITが入り、4段階の最適化を行い35%高速化されるらしい。
286 :
デフォルトの名無しさん :2014/06/08(日) 12:46:22.41 ID:21WBLknj
kitkatで外部sdアクセス制限って話があったけど、内部sdなら問題ないんだよね? 他のアプリが作成した文書を、自分のアプリで読み書きしたいんだけど、 内部sdでやりとりするなら大丈夫なんですね?
287 :
デフォルトの名無しさん :2014/06/08(日) 15:22:09.44 ID:0uU8YEKn
バックグラウンドで動いてるものに対してハードキーでON、OFFしてやる(もしくはそれに近い動作)ことは可能でしょうか? ちなみにAPI15以降
ちなみに勉強やり直し
ちなみにどのあたりを
AndroidManifest.xmlに action.MAINとcategory.LAUNCHERのintent-filterをつけたactivity要素を書いて 起動するActivityを指定するけど, これってAPI levelによって別のActivityを起動するようにすることは可能? 基本はActionBarActivityを継承したものを起動するんだけど 1.6だったらふつうのActivityを継承したものにする,とかそういう感じで
291 :
デフォルトの名無しさん :2014/06/08(日) 17:39:20.23 ID:21WBLknj
>>290 コンパイルを通したコードのAPI以上のアプリしかインストールできないんじゃないの?
>>185 フラグメントを2つ表示して、フラグメントに一つずつリストビュー表示。
リストビューの大きさは、フラグメントの大きさで指定してやると簡単だよ。
誰か俺の質問にもレスしてよ。
292 :
290 :2014/06/08(日) 17:42:14.89 ID:ghHnK3Sp
一応だけど,起動後にAPIレベルで条件分岐して 別々のActivityを起動するって方法は知ってる前提での質問 上でもできるんだけど,AndroidManifestに何か書いて 実現できないかなって技術的好奇心で
293 :
デフォルトの名無しさん :2014/06/08(日) 17:47:15.35 ID:21WBLknj
>>292 APIレベル11のコードが混じったアプリを、APIレベル10の端末にインストールできるってこと?
そんなことできるんだね?
294 :
290 :2014/06/08(日) 17:47:21.40 ID:ghHnK3Sp
>>291 >コンパイルを通したコードのAPI以上のアプリしかインストールできないんじゃないの?
はい,その通りだと思います
それが本件と何か関係ありますでしょうか
295 :
290 :2014/06/08(日) 17:49:54.16 ID:ghHnK3Sp
>>293 あれ?あなたの環境ではできないんですか?
それは不思議ですね
「コンパイルを通したコードのAPI以上」というところを
自分都合で解釈してしまったようです,失礼しました
「コンパイル時に設定しているminSDKバージョン以上の」
と読み替えていました
>>295 普通にやってる事なので、知らない人のレスはパスでいいと思う
297 :
デフォルトの名無しさん :2014/06/08(日) 18:03:52.96 ID:21WBLknj
普通にやってたのか、こりゃ知らなかったです。 コンパイルは、APIレベル8から11でやって、 APIレベル11のコードも混じらせたアプリを作ったとして、 インストゥールされた端末が、APIレベル8か11かで、 実行するコードを変えるってわけですか。 デバッグ面倒そうだけど、労力に見合う効果あるの? へんなユーザーからクレームこない? 「おなじアプリ使ってるのに、俺の端末だと使えない機能があるぞ!」って。 そういうアプリもあるってことか。諦めて、新型スマホに買い換えてもらうしかないね。 あ、でも外部のSDカードアクセスできないんだっけ?
298 :
290 :2014/06/08(日) 18:08:50.96 ID:ghHnK3Sp
>>296 その通りでしたね,失礼しました
変なのにレスしちゃったようです
299 :
デフォルトの名無しさん :2014/06/08(日) 18:11:18.00 ID:21WBLknj
へんじゃないよ。
>>251 ところで、これ何?
気になってるんですが。
>>297 >>デバッグ面倒そうだけど、労力に見合う効果あるの?
だから…使う必要が無い人にはわからないでしょ
301 :
デフォルトの名無しさん :2014/06/08(日) 18:17:28.20 ID:21WBLknj
わかんないけど、そこんところ知りたい! たとえば、どんな機能で使うものなの? 後学のためにぜひ! APIレベル10だと不十分な機能のメソッドしか使えないのが、 APiレベル11だと、すごい機能のメソッドに置き換えて快適実行できるってやつかなあ。
GoogleとしてはManifest MergerとGradleによる個別ビルドで対応してねって方向なんだろうな
303 :
290 :2014/06/08(日) 18:25:50.89 ID:32p1BQV3
あれ,俺全然290以降書きこんでなかったはずなんだけどなw 俺がそういうことをしたいと思ったのは,単に「可能ならIS01をサポートしたい」ってだけだよ 昔気にいってたからね 今,ActionBarを使わないで作ってあるんだけど,なんとなくActionBarを使ってみようかなと思ってさ 変なユーザーからクレーム云々は別に大丈夫 Google playには別に出してない,野良アプリに過ぎないから もともと,俺以外ほとんど誰も使ってない
そうなの? でも有料アプリだと困る場合があるでしょ 下も上も切り捨てるわけにはいかないから
Manifest.xmlで@stringでActivity名を指定できるなら string.xmlをバージョン別に定義すればいけそうだけどどうだろ
普通は対応APIまで後方互換で作るものだと思うけど ActionBarだって1.6から後方互換あるんだから どうしても分けたいならFragmentで判定分けるのが簡単だろうけど結局v4使うことになるな
あれ,ActionBarが使えるのは2.1以降用のsupport libraryだと思ったんだけど 違った? そんで,support libraryで使おうと思うとActivity自体をActionBarActivityにしないと いけないので,起動時のActivityでActionBarを使おうとしたときにどうすればいいのか 気になったんだけど まあ1.6は諦めたほうがいいかなあ
1.6だとバージョン互換のないコードが含まれているクラスをロードするだけでVerifyErrorで落ちちゃう 2.1以降(2.0は知らん)だと実際にロジックを通らない限り落ちない ってことで1.6向けに作ろうと思ったらクラス自体わけないと行けなかったりしてめんどいのです
そういうもんだってことなら割り切れるんですけど 公式のサンプルなどで匿名クラスでOnClickListenerを実装してたり、内部クラスを作ってたり なんで匿名で実装?ここでstaticの内部クラス?とかどうしてそれを選んでるのかがわからないんですが これは何の知識が足らないのでしょうか
>>299 単なるノベルゲーでしょ。
セーブロードボタンの機能をグローバルなインゲームフラグでON/OFFできて、
特定イベントでの画面上の演出がPCの再起動っぽく作られてるというだけの。
攻略サイト閲覧云々は知らん。方法は色々と有るだろうし。
タスク切り替えでブラウザに変えるのを検知するとか、
ダミーの攻略情報でも用意しておいて罠にハメるとか、
攻略サイトの選択例を罠として取り込んだパッチを配信するとか。
>>290 activityタグのenabled属性を使えば行けるよ。
enabledの値はbooleanリソースで指定できるからAPIバージョンで値を切り替えられる。
314 :
デフォルトの名無しさん :2014/06/09(月) 22:00:16.98 ID:+0BIkPLB
自作ゲームのBGMをメディアプレーヤーで鳴らしています。 インスタンスを二つ作って一つはイントロ、もう一つをメインメロディとしていて イントロを抜けたあと、メインメロディをループさせているのですが、この方法だと 死亡時に再度イントロの音を鳴らすことができません。 色々試した結果、イントロが終了前であれば、再度再生はできます。 一度、再生終了した音を再度鳴らす方法ってないのでしょうか? sotp()メソッドと同じように、prepare()も使用通りに動かせません…
もう一度newするなりresetしてから再設定してprepareするなりしてみたらどう
316 :
デフォルトの名無しさん :2014/06/10(火) 01:03:00.90 ID:Zyt10MyK
>>315 そうですねえ、なるべく使いまわしたかったのですが。
結局、staticメソッドの.create()を毎回実行することにしました。
reset()は特に呼び出さなくても問題ないようです。
基礎から確かな情報で知りたくて公式のAPIガイド Fragmentの項目を3時間かけて翻訳して読んだのに 既にすげえいい翻訳が「勝手に翻訳」であった……
319 :
デフォルトの名無しさん :2014/06/11(水) 15:11:17.66 ID:xxYaxAWY
ゲーム作ってみたんだけど音の大きさがバラバラでした。 なんか基本となるデシベル数とか無いですか? スマホのボリュームがどこに合わせてある時にベストの音量が良い音量、とか無いですか?
人に聞く前に頭使え すぐわかることだろう
321 :
さげ :2014/06/11(水) 16:26:57.90 ID:XOwJziqk
暗証番号う-アプリ
Activityに緋も付けられているFragmentだけがOSに消されることってありますか? 要はActivityでFragmentのインスタンスを持ってても大丈夫か知りたいです
持ってても大丈夫だけど、場合によってはFragment#isAdded()でチェックする必要がある
cとjavaの基礎はわかっててAndroid開発はわかってない人向けのおすすめの参考書はありませんか? 参考書を買って練習しようとしたのですが、その参考書がどうやら自分にはまだレベルが合ってないようなので 新しい参考書を探しています
ggrながらやれよ。本って情報古いから特にこの手の分野では使い物にならないぞ
This class was deprecated in API level 17.
こんなようなコード大丈夫かな、 回転再生時のリテインなコールバックの タイミングがはやすぎて泣く泣くこうし てる。フラグメントの再生とかややこし すぎる。 public void XXX(){ if(mObj != null){ mObj.doAnything(); }else{ new Handler().postDelayed(new Runnable(){ public void run(){ XXX(); }, 100) } }
>>328 そこで確保したHandlerのインスタンスってどのタイミングで開放されるんだ?
>>329 すみません、2chで書くのにコードはちょっとはしょってまして、Handlerは無名ではなくインスタンス変数にしてます。
Androidで特定のサイトのツイート数、はてブ数、イイね数を取得する方法を教えて下さい 参考になるサイトでもいいですお願いします
>>328 ぶっちゃけそういう対処ではいつか破綻するので、ロジックを見直した方がいい
>>332 内心そう思ってます。じっくり考えなおすかぁ
>>331 Androidでなければ取得出来ているのですか?
各サービスのAPIの使い方の話でAndroid何も関係ない
だな
なるほど、api側に合わせてjquery組み込まないとダメみたいですね どうもです
フラグメントがあって、特定のボタンを押したらアニメーションが走る というコードを書いています。
アニメーションとしては、イベントが走るとフラグメントの一番上のビューを画像として取得→その画像を持ったイメージビューを作成→イメージビューをルートの直下に置く
置いたイメージビューに対してアニメーションを実行 という流れで、正常系は無事動いたのですが
アニメーションが走っている途中に電源ボタンを押してスリープモードにして、再度電源を押してアプリの画面を表示すると
イメージビューが初期状態に戻ってしまうようです。
つまり
>フラグメントの一番上のビューを画像として取得→その画像を持ったイメージビューを作成→イメージビューをルートの直下に置く
この、アニメーション開始直前の状態にイメージビューが戻ってしまい、UIフラグメントと、UIフラグメントの画像を持ったイメージビューが重なっている気持ちの悪い状態になってしまいます
フラグメントのonPauseでアニメーションやイメージビューに対してremoveやCancelを呼んでみたのですが、状態は変わらず、スリープを解除するとアニメーション開始前の状態のイメージビューが残ってしまいます。
例えが微妙ですが、たまにはてなブックマークのアプリで出る症状です
xmlとコードは以下のとおりです。
http://pastebin.com/MAzt3imP xml
http://pastebin.com/e4X8SyMX java
アニメーションとイメージビューを削除するにはどうしたらよいのでしょうか。
環境はNexus7 kitkatです
339 :
デフォルトの名無しさん :2014/06/14(土) 12:46:01.73 ID:uWprTjTT
ソフトキーボードの検知について質問させていただきます。 Activity内でのキーボード検知はレイアウトの高さが変わることで検知するのが一般的なようですが、これをServiceクラス内で(つまり他画面でのソフトキーボード)検知することはできないでしょうか? キーロガー対策で無理ですかね
androidのプログラミングでよく見かける public staticのネストクラスの記述はどういうメリットがあるんでしょうか? publicでstaticのネストクラスならトップレベルのクラスと同じような動きを外部に提供しますし、 わざわざネストクラスにする意図がよくわからないのですが……
>>340 ファイルを増やしたくないから、親のプライベートメンバにそのままアクセスできるから、
などにメリットを感じる。
>>341 >ファイルを増やしたくないから
なるほど、わかります
>親のプライベートメンバにそのままアクセスできるから
親というとネストクラスの外側エンクロージングを指してるということでいいんですかね?
staticなネストクラスはエンクロージングのメンバにアクセスできないと思うのですが、わたしの知識が正しくないのでしょうか
非staticのいわゆる内部クラスだけがエンクロージングのメンバに自由にアクセスできるという認識だったのですが
public class Enclosing{ private int x; public static class NestedStatic{ public void set(int i ){ x = i; } } } >親のプライベートメンバにそのままアクセス こういった使い方はできないでしょう?
>>344 いえ、情報系学部卒なだけでPGが本職でないんです
学校の先生に聞いた方がいいかも プログラマは出来なくて困った時に追求していくので理論はどうでもいいから
>>346 理論を質問してるつもりはないのですが……
本職の方になら失礼ですが言語は道具でしょう
>>347 プロは使わないものに無駄な力は使わない
>>347 貴方は日本人だと思うが、薔薇とか檸檬とか普通使わない漢字は書けないでしょ
>>345 横から失礼
ではプログラマでないのになぜ質問のような知識を求めてるの?
ネストしたstaticクラスはエンゲージのメンバにアクセスできるかがそんなにもプロの方々からすればタブーな質問だとは知りませんでした
プログラマー板ではなくプログラム板のスレなので素人の私もと質問してみたのですが、無知を晒してしまい失礼しました
>>348 なるほど使わない知識だったんですね
>>349 たしかにそうですね
>>350 数年前にWebアプリケーションを組んで遊んでいたんですが
公開したいなぁと考えた際にSQLインジェクション、XSSやCSRFはじめ細かいところまできちんと理解していたら防げる脅威を多く知ったからです
サーバ側の対策やアプリケーション側の対策など多すぎて、書籍など読み勉強したのですが、チェックしきれずさらに1年ぐらい取り組んであきらめました
それ以来個人用ではなしに何か作る際は、重大な欠陥を見過ごすのが怖いためできるだけ掘り下げて学ぶようにしているからです
>>343 クラスの静的メンバは静的メンバにのみアクセスできる法則は、クラスとフィールドになっても当然変わらないから
staticな内部クラスはstaticなフィールドにのみアクセスできる
staticはクラス内でどこでも同じ値っていう認識でしかないわ
staticクラスをなぜネストするかって、単純にほかでは使わないクラスだからでしょ。 理論がなんたらで、プロは知らんから学校の先生にきけとか、なんでそんな話になるのか分からんわ。
ネストなんて用語を知らなくても趣味で月15万稼げる世界だもんで。
>>343 すんません、逆でしたわ。親から子のプライベートメンバにアクセスできる。staticにしなくても。なんでだろ、とにかく便利に感じる。
>>356 親から子なら、子をインスタンス化するわけだからそれは当然じゃないの?
この場を借りて少しだけ愚痴らせてくれぃ!!! Androidアプリで焼き増しって禁じられてるの? 例えば、あくまでメインのサービスはWebコンテンツ要素にしておいて Webviewでそのサービスのコンテンツを見せるようにしてる。 しかし、同じサイトの中でもジャンルが違えば閲覧者は変わるから ジャンルごとにアプリを焼き増ししてリリースしてる。 アプリの中身や説明文はほんの少しだけ変えている しかし、この行為がスパム行為と見なされてアプリをgoogleに勝手に削除されていた こういった焼き増し行為をしている人は沢山いるよな?
そんな糞行為やめろよ。google垢永久BANでいいわ
>>360 targetSdkVersionに指定してるバージョンのSDK Platformをインストールしてあるかね?
>>358 ちょっと前のポリシーの変更で禁止になったような
wbview表示するだけのアプリはアウト
>>363 SDK Platformは全バージョンインストールしてあります
>>365 File -> Project Structure... のSDK Locationに設定されてるパスの場所にちゃんとインストールされてる?
そのパスの下にplatoforms/android-19みたいな感じで
>>364 Googleは何がしたいんだ?
webview以外にリンクのためのインターフェースを用意してるんだが
>>367 通報した奴むかつくな
>>368 通報されるようなアプリをつくる奴むかつくな
エロアプリをつくる奴むかつくな
特にロリエロアプリをつくる奴むかつくな
通報したやつGJだ。広告クリックさせるためだけのゴミアプリ作るなって言ってるんだよ
今回の場合は、対象ユーザーによってコンテンツが違うから分けるのもしかたないような気もするけど、 (例えば、ファッションに関するコンテンツと、本に関するコンテンツは意図するユーザーが違うから、アプリで分けて表示とか) まあ中身が上の方で言い合いになってた内容とかならBANされてもしかたない
そもそもゴミアプリなんだからそんなものうpするな
普通のブラウザで見られるコンテンツを集客の目的のためにアプリにしただけなのは基本的にダメなんじゃね?
>>373 公式系のアプリってそういうの多くないか
ひどいのは、ただのリンクショートカットアプリな
アプリを起動したら、ブラウザに飛ばしてサイト開くだけの
ドコモがこれやってて、なんだこれと思った
>>375 完全な特種業務用だから通報してもムダ
君達、エロやパクリを造っていて恥ずかしいとは思わないのか?
377 :
デフォルトの名無しさん :2014/06/15(日) 16:46:12.22 ID:C5JSKYjy
エロアプリって、どれくれい儲かりますかね? 普通のアプリだと、50人くらいしか使ってくれないから広告収入にならない。
いや、ごめん違反ゴミ作らないから通報しても無駄
エロ?パクリ?作ってないけど
通報しても無駄ってなんでお前がわかる?Googleの人なのか?
実際にやってみないと無駄かどうかはわからないと俺は思うんだけど
なんでも想像だけで偉そうに語るお前みたいのが個人的にムカツクってだけ
業務用をPlayに公開してるのか?
まさかPlayに公開していない身で他アプリの事を
>>369 のようにわめいてるのか?
一番恥ずかしい奴じゃないのそれ
まぁ喧嘩するなよ エロ用でもなんでも使ってくれる人がいるから金は入るわけで 金が入るから作る人がいるんだろ 俺はアプリに広告が入ってるだけでうるさい人のが嫌だわ キーボードのボタンぽちぽちするだけでアプリ作ってると思ってんのか知らんが 対価を求めると切れる方々が多いからな 嫉妬か何かか?アフィもそうだけどアプリやネット関連にやたら多いよね連中 有料にするとテストにさらに神経質にならないといけないし気が滅入るね
無料が当たり前になって、その辺は若い人ほど感覚が変わってきてるのは感じる 無料が当たり前、広告なくて当たり前っていう レビューとかほんと酷いのは酷いからなぁ まあ、そういう時代に合わせて作らないといけないのもたしかだし、 あからさまな広告配置や、誤タップねらったもの、 見てて邪魔になる広告とかは、先に文句の方が出る ただ、個人でやってるなら、そんなのはいちいち気にしなくてもいいのでは 収益ほしくて広告貼るのは別にダメな事ではないし (というか、基本は昔からサービスの提供者はやってる事)
>>380 >>有料にするとテストにさらに神経質にならないといけないし気が滅入るね
ほらね 低脳作者の言い訳 その(1)
見苦しいからやめれって
まぁ口コミ系はステマにしろネガキャンにしろ業者がやってるからそれ気にしてもしょうがない
時間は金なんだから
有料で出すアプリの方が無料で出すアプリよりテストを念入りに時間かけてやるのは当たり前だと思ってたんだが違うのか
相手も金出してくれてるんだから誠心誠意とりくまにゃならんだろう
無料ならおかしかったら修正してあげなおせばいいんだし
>>382 少なくとも俺はプログラミングで一番大変で同時に大切なのはテストだと思ってるんだが
あんたは有料と無料のアプリがあればどちらも同じ重み付けで開発するの?
あ、業務と一緒にするなよ
>>385 有料でも無料でも重みはかわらんよ
無料だと手を抜くの?
そもそもうちの場合、有料無料も9割同じソース共有だから変わらん
やっとまともな人が出てきた
>>388 キミキミ、キミ以外はみんなまともなんだぞ?
>>389 手を抜くプログラムを組むクソがまともなのか?君の会社では?
どこにもプログラムに手を抜くなんて書いてないだろ
なんか会社(組織)のやり方なのにそれを自分の方法と誤認してる奴や どうみても個人制作であろうアプリをどこかに納めるアプリと勘違いしてる奴がいるな 個人でPlayに上げるケースなら無料より有料の方にテストに時間かけるに決まってるだろう 会社はお前じゃないんだぞ
決まってないよ
>>394 やっぱ低能クンだね
自分の創作品は自分の子供と同じ
絶対に手は拔かない
有料、無料、仕事、に関わらず全力を注ぐ
ああ、低能クンの作品は大した作品では無いのかな
議論の中身は置いといて、 なぜそんな喧嘩腰なんだろう 普通に会話すれば良いのに
>>394 なんか話がかみ合わない気がするけど無料ってまさか広告・課金なしの完全無料じゃないよね
有料も無料も作った分の対価を得るということに違いはないし
例え無料でも全力でやらないとダウンロード数が全然違うよ
売られたけんかを買ってるだけだけどね ま、「低脳君」は辞めて、「志が低い人」に修正しておこう
理想論を言えば全部同等に丁寧になるけど、実際は有料も無料もいい加減だろ それでも未だに15年以上前に公開したフリーソフトの問い合わせとかきやがる。もう覚えてねーから全無視だwww 今は無料も有料もメンテもサポートも保証しないって明言してるわ
だれかObjective-CのコードをJavaに変換できるツール知ってる人いたら教えてくだしあ
コードかけよ 変換してやるから
衝突判定について聞きたいんですけど、もし円状の形の物に衝突判定する場合リアルな円を判定しているのでしょうか? それとも見た目は円でも四角形の四点を起点に判定しているのでしょうか?
どれくらいの精度を求めるかによるんでしょう 移動できるゲームとかなら見た目丸でも四角い当たり判定でも問題ないだろうし
>>404 それは中心間の距離と互いの半径の合計との間の大小比較でやるというのは高2レベルの数学の話。
大人のプロはそんな事他人に聞かない
AsyncTaskLoaderクラスを使ってるんですけど、loadInBackground()が終わり、 deliverResult()のsuper.deliverResult(data) でセットしたデータをactivity側で受け取るにはどうすればいいですか?
ユークリッドではなく曲座標で考えろ
理論じゃない直感で書くんだ
だいたい
>>404 は円同士の衝突なのか円状の形と何かの衝突なのか
2次元なのか3次元なのかも書いてないので
大人のプロは「言ってる意味が分からない」と答えます
当たり前なことをドヤ顔でマジレスすると、 衝突判定を円とか球とか単純な形でやるのは、複雑な形状よりも単純な方が判定処理を軽くできるってのが理由。 だから「円状の形の物」を判定するんだったらそれは円で判定するのが普通。 円は十分単純だからわざわざ四角に置き換える必要がない。
円状って正円限定なのか疑問 円状に衝突する側も同じ形なのかも疑問
質問者が現れないからもういーんじゃないの
420 :
名無し :2014/06/17(火) 14:23:46.17 ID:5WRKEDe5
なんか良い本ないですか 近くの書店にはどれも同じやさしい入門書しかない できることを増やしておきたいんですが、公式のトレーニングよんどきゃいいですかね
実際にアプリ作った方が覚えるの早いよ
>>422 作りながら「何が必要か」をその都度調べながら学習していくのいいですよね
いま作ってる物が一段落したんで、体系的に書籍で学びたいなぁと思ったんですが
普通に公式のAPI Guidesとかをはじから読んでいくのでいいと思うけどなあ
今日初めてeclipseでAndroidアプリを作ったのですが、一度apkを署名付きで作ったらeclipseから実行することができなくなってしまいました 実行でいないときに出るエラーメッセージは下記の3行です Failed to install ********.apk on device '*******.': Local path doesn't exist. com.android.ddmlib.SyncException: Local path doesn't exist. 起動はキャンセルされました! ぐぐってみて「プロジェクトのクリーンをして再起動する」「debug.keystoreを削除してみる」「デバイスを再接続してみる」などやってみましたが、どれもダメでした。 また、プロジェクトのクリーンをした後に実行しようとすると「プロジェクトにエラーがあります。アプリケーションを実行する前に修正してください。」とダイアログ表示されます。 これは何度か実行をやり直すと出なくなりますが、先のエラーメッセージが出てしまいます。 この現象の対処法をご存知の方はいらっしぃますでしょうか? 環境は今日落とした最新版のJava SE(8u5)+eclipse(Pleiades All in One 4.3.2.v20140321)+Android SDK(r22.6.2)です。 Windows 8.1(x64)上で実行。Android 4.2のタブレットでUSB接続デバッグ実行しています。
>>427 下記の流れで端末からアプリを削除して再実行してみましたが、結果は変わらずでした。
タブレットからアプリ削除→プロジェクトのクリーン→eclipse再起動→実行
相変わらず「プロジェクトにエラーがあります。アプリケーションを実行する前に修正してください。」のダイアログが出て、再度実行しようとすると3行の赤字エラーメッセージという感じです。
>>410 LoaderManagerにLoaderと一緒に登録したリスナーのコールバックが呼ばれる
deliverResultはAsyncTaskLoaderが呼んでくれるから呼ぶ必要はない
430 :
426 :2014/06/17(火) 18:59:36.20 ID:6SIz/j6O
すみません、解決しました。 何らかのきっかけでbinフォルダのapkファイルがロックされていたのが原因だったようです。 ふとフォルダを見たとき、何度もクリーンしたはずなのにapkファイルの更新時間が変わっていないことに気づ、削除しようとしたらロックがかかっていて失敗。 eclipse他、落とせるだけソフトを落としてみましたがやはり削除できず、OSを再起動したら直りました。 「apkファイルを上書きできません」みたいなメッセージだったら悩まなかったのに・・・。 お騒がせしました。
>>430 もしかしてeclipseをprogram Filesにインストールしてるとか?
してたらC直下にしたほうがいいよ
>>431 Dドライブに手作業で作ったProgram Filesに入れてます。
※手作業で配置するソフトはCのProgram Filesに入れていないです
CにしてもDにしてもドライブ直下に置いたほうが良いのでしょうか?
434 :
デフォルトの名無しさん :2014/06/17(火) 20:53:43.28 ID:maSRhB0o
どうにも解決策が見つからない状態なんですが、ファイルをアップしたら試してみたりしてもらえますかね? 横スクロールのアクションもので、エミュだと動くんですが、実機ではchoreographer.docallbackで止まってしまいます。
>>429 loaderをactivityに実装したら各overrideメソッドと連携して処理出来る様になりました。ありがとうございます。
AsyncTaskLoaderって使いにくくない? ちょっと非同期したいってだけでいろんなもん実装されて起動するにも手順めんどくさいし 俺は普通にAsyncTaskにコールバック作ってやるほうが簡単でやりやすいな
>>436 普通にThreadクラスをnewしてUIいじりたければHandlerにpostするだけで良いと思うんだけど、なんでこんなに色々非同期系のクラスあんのかね。
438 :
デフォルトの名無しさん :2014/06/17(火) 22:41:08.20 ID:zBfwujnn
>>437 android開発チームの人が、とりあえず作ったから、おまえら使ってみろ。
と、言ってるだけだよ。
非同期処理を簡単に書きたいならそういうライブラリが色々ある promiseとかdeferredとか あとeclipseでやろうとしてる初心者っぽい書き込みを見かけるけど今から始めるならeclipseはやめておいた方がいい。 もうライブラリ開発者とかもほぼgradle/aarベースにシフトしてきてるし。
と書いた後に気づいたけどAndroid Studioはインターフェース全部英語だったか。 でも公式ドキュメントも英語だしこれからプログラムやるなら英語は必須だし修行と思って使った方がいいと思うね。
誰向けに書いたレスなんだろ。 gradle/aarとか初心者向けに書いても理解されるわけ無いし。 ただ知ったか振りたかっただけなんだろーな、と思われても仕方がないぞ。
この的外れな煽り返しコミュ障か
>>417 分岐コストの方が安いなら四角の方が軽いし、
乗算コストが十分安いなら円形の方が軽い。
AsyncTaskLoaderは自分で継承するのはメンドイけど 継承済みのCursorLoaderを使える場面なら簡単だ
androidではいわゆる折り返しの処理は独自実装するしかないんですかね?
テキストの話ならプロパティ指定でできる
>>448 すいません ImageViewやButtonなどの話です
用意してくれていてもいいとおもう機能なんですけどねぇ……
ありがとうございました
>>449 どのようにやりたいかが不明だが、機能としてはあるけどね
>>450 ●●●●●
●●
●●●
●●●●
●●●●●
●
画面端にいったら折り返すような処理です
自分用に、少し拡張性のあるメモ帳を作ってるんですが 追加及び削除で書き込みする時は、どうしたら良いでしょう? FileWriterの第二引数をtrueを使う場合は あらかじめ付け加える文字が決まってる場合だと思って 色々検索したんですが、TextWatcherインターフェース を使えば良いのかなと思い、実装してみたんですが 上手く行きません もう、まるごと一時的に読み込んで ファイル削除して、再度ファイル生成するのが 良いのでしょうか? 何か良いスマートな方法をご存知の方 ご教示願います。
何を言ってるのかよくわからないが,FileWriterでもFileOutputStreamでも好きなものを使って appendモードでwrite()すれば普通に追記できるだろ なんでそこでTextWatcherとか出てくるんだ?
まるごと書きなおすのが一番簡単かな(ファイルの削除をする必要はない)
まとめサイトのアプリを作りたいのですが、何を勉強したらいいのかな。 仕様としては、自動でまとめのurlを取得するのと独自のブラウザみたいな機能がほしい。
その手のアプリはまとめ先に許可もらわないとBAN食らうよ
グノシーとかsmart newsみたいに許可とって元のサイトも表示しないと怒られるわな 見出しだけのリンクならわざわざアプリでやる必要ないし
andEngineという2Dフレームワークを利用しています。 そこで、標準のソフトキーボードを表示&入力させたいのですが可能でしょうか?
権利物のアプリを公開した時って使用許可を貰っていることをどうやって証明すればいいんでしょう? 停止食らってから、その後メールで使用許可を証明しろみたいなメールがくるのだけど停止される前にどこかで証明する場所ってありますか? アカウントにペナルティ溜まりそうだし、いきなり停止されるのもいい気分しないし、面倒だから事前にやりたいのですが・・・
>>459 あっと、Googleplayでのことです
証明書の提出というのがそうだよ
462 :
デフォルトの名無しさん :2014/06/20(金) 00:16:41.91 ID:NlnW05oV
onTouchイベントについて教えてください。 float X = event.getX(pointerID)でそれぞれの指の座標を取得するんですが、 素早くパタパタやると固まってしまいます。 ゆっくりだと問題なく動きます。 getXしなければ問題ないんですが、座標を取得する必要がありまして。 回避する方法、何かないでしょうか?
edittextで入力された値をgetText().toString()で取得しようとしているけど edittext内に改行があったら、改行後から取得できません。 入力内容 〇〇 ×× 取得内容 getText().toString() 〇〇 どのように全て取得すればよいでしょうか
>>461 それは事前に提出するにはどこからやればいいのでしょうか?
GooglePlayのDiveloperConsoleのアプリのページを一通り見てみたのですが
それに相当するような場所が見当たりません
>>463 勘違いかも
logcatに改行含むものが表示されないだけ?
462です。 自己解決しました。 ずっと勘違いしていて、ポインタIDを引数にしていました。 引数にするのはインデックスなんですね…
ポインタIDって何を入れてたのか気になる。
getPointerIdで取得できるポインタIDの事でしょ ポインタIDはタッチ箇所毎に振られてアップするまで一定なのでタッチの軌道とかジェスチャーの判定に必要
マルチタップの管理にも必要
GUIの数値を入力した箇所を、ボタンを押すと何も入力してない状態にリセットするにはどうしたら良いですか?
setText
473 :
452 :2014/06/21(土) 05:15:17.49 ID:kbSPYLkm
再度質問さして下さい 初期状態はレイアウト上で、ViewGroupを設定しています。 そこで、新たなファイルを作る時、にレイアウト上のボタンを押すと 書き込み用のViewを表示させ、Backボタンをおすとファイル名の付いた独自Viewが追加されるようにされ そして作製したテキストファイルも、内部フォルダに追加されるように 実装しています。 ただ、追加書き込みしようとしても、EditBoxの内容が反映されません。 どなたかご教示下さい。
474 :
452 :2014/06/21(土) 05:19:18.15 ID:kbSPYLkm
以下ソース @Override public boolean dispatchKeyEvent(KeyEvent event) { if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) { if (edittextframelayout!=null) { //メインレイアウトにEditTextView等の入った独自viewの入ったレイアウトを設定 setEditTextLayout(edittextframelayout); // ファイル名とファイル内容EditBox取得 file_name_edittext = (EditText) findViewById(R.id.file_title_name_edittext); file_contents_edittext = (EditText) findViewById(R.id.file_contents_edittext); // ファイル名及びファイル内容保存 TextFile textfile = new TextFile(MAIN_FOLDER_URI,file_name_edittext.getText().toString(),file_contents_edittext.getText().toString()); // ファイル名取得 String titlename = textfile.getTitlename(); // ファイル内容取得 String contents = textfile.getContents(); if (!titlename.equals(".txt") ) { // ファイル書き込み読み込みインスタンス OpenAndWriteFileByJava owf = new OpenAndWriteFileByJava( this, MAIN_FOLDER_URI, titlename, contents); owf.fileOutput();} ///上記までは、ファイル名付きでファイル内容付きまで生成成功 ///下記で、上記で作ったファイルをEditText等の入った独自viewの入ったレイアウト内での ///EditTextに追加書き込みしてもEditText内の文字列が取れません SpannableStringBuilder sb = (SpannableStringBuilder)file_contents_edittext.getText(); Log.v("Contents", sb.toString()); // EditTextレイアウトをnull化 edittextframelayout = null;} setGridViewInMainLayout(); return false;} // Backボタンに関わらないボタンが押された場合は、通常処理. return super.dispatchKeyEvent(event);}
紀伊国書店いってもどれも同じような内容な本ばかり なによりもFragmentの使い方を解説してるページが少ないものばかり Fragmentを全く解説していないし、索引にものってない本すらある Fragmentを活用できるようになりたいのですがオススメのサイト、書籍知っておられる方いれば教えていただけませんか
毎回お勧めの本って話題が出て、 そんなものは無いって答えが返る もうテンプレ化しちゃえば良いのにと思う 8冊買って最終的に全部人にあげた俺個人としても お勧めの本など(特に日本語には)無いでFA
>>475 サイトがあるならググればみつかるだろ
ググレカスガンバレ
本4冊あるけど、SpannableStringBuilderなんて書いてないしなあ。
>>474 もググレとしか言いようがないなあ。
479 :
474 :2014/06/22(日) 03:55:39.49 ID:McaQ3omB
自己解決しました
480 :
デフォルトの名無しさん :2014/06/22(日) 13:58:59.05 ID:1Bdv5ZTs
activity1からactivity2を呼び出しactivity2で以下の処理をしています。 ボタンを押したらactivity1に戻るようしたいのですが、 ボタンを押すと再度bluetooth検索処理が走ります。(ログで確認済み) もう1度ボタンを押すとactivity1に戻るのですが、原因がわかりません。
481 :
デフォルトの名無しさん :2014/06/22(日) 13:59:48.38 ID:1Bdv5ZTs
続きです protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_device_list); _btAdapter = BluetoothAdapter.getDefaultAdapter(); IntentFilter filter = new IntentFilter(); filter.addAction(BluetoothDevice.ACTION_FOUND); filter.addAction(BluetoothDevice.ACTION_NAME_CHANGED); filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED); registerReceiver(_receiver, filter); Set<BluetoothDevice> pairedDevicies = _btAdapter.getBondedDevices(); // 接続履歴の機器を列挙 for (BluetoothDevice bd : pairedDevicies) { Log.v(getResources().getString(R.string.app_name), bd.getName() + " : " + bd.getAddress()); }
482 :
デフォルトの名無しさん :2014/06/22(日) 14:00:20.31 ID:1Bdv5ZTs
// 機器の検索 if (_btAdapter.isDiscovering()) { _btAdapter.cancelDiscovery(); } _btAdapter.startDiscovery(); Button buttonFinish = (Button)findViewById(R.id.button1); buttonFinish.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO 自動生成されたメソッド・スタブ if (_btAdapter.isDiscovering()) { _btAdapter.cancelDiscovery(); } Intent intent = new Intent(); setResult(Activity.RESULT_OK, intent); finish(); } }); }
483 :
デフォルトの名無しさん :2014/06/22(日) 15:50:56.20 ID:YwyGxFkC
レイアウトの設定がうまく行きません。 5つの縦並びのレイアウトをheightを0にしてweightだけで割合を設定しているのですが weightを増やすと当該レイアウトの割合が減る、という現象はどういう理由でしょうか。 単純にweightの割合でレイアウトを決めようと思っていたんですが。
普通にやればlayout_heightを0にしてlayout_weightを設定すれば比率で割り振られるはずだけど
<LinearLayout xmlns:android="
http://schemas.android.com/apk/res/android " android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">
<TextView android:layout_width="fill_parent" android:layout_height="0dp" android:background="#F00" android:layout_weight="2" />
<TextView android:layout_width="fill_parent" android:layout_height="0dp" android:background="#0F0" android:layout_weight="1" />
<TextView android:layout_width="fill_parent" android:layout_height="0dp" android:background="#00F" android:layout_weight="3" />
</LinearLayout>
これで2/6、1/6、3/6の割合のサイズになる
485 :
483 :2014/06/22(日) 17:16:28.03 ID:YwyGxFkC
新規アプリ作ってコピーしてやってたら テーマにnotitlebar使ってたらそうなってるようです。 普通のテーマだと普通に表示されます。 タイトルバーのとこらへんの計算でなんか狂ってそうなってたんでしょうか。 良くわからないけどテーマ変えてやってみます。
>>418 円である必要はないな。最初に正円で衝突の無い組合せをふるい落とす。
正確な衝突判定はそのあとすればいい。
FrameLayout、SurfaceViewについての質問をお願いします FrameLayout SurfaceView(s0) SurfaceView(s1) RelativeLayout(ボタン群) の順序でxmlに記述しています 初回は↓で表示されますが、 RelativeLayout > SurfaceView(s0)> SurfaceView(s1) 外部ギャラリー等を呼び出して戻ってくると表示が↓に変わります RelativeLayout > SurfaceView(s1)> SurfaceView(s0) その後は何回外部ギャラリー等を呼び出しても↓のままです RelativeLayout > SurfaceView(s1)> SurfaceView(s0) setZOrderOnTop(true)を使うとs0とs1の順序は調整出来ますが SurfaceView(s0)> RelativeLayout > SurfaceView(s1) になってしまいs0の後ろにRelativeLayoutが来てしまいます みなさんはどうやって対策していますか?
>>487 ※ネットで見つけたものですがこれが原因なのでしょうか?
GLSurfaceViewや、SurfaceViewを複数使った場合に順番がおかしくなる。 †
Androidでは、SurfaceViewの継承クラスが複数あるような場合、
SurfaceFlingerというOSの上に直結した特殊な画面合成レイヤーが存在し、
それらが複数のSurfaceの描画順を、内部のZ値(深度)を元に処理を行うが、
Z値がシーン切り替えなどの画面に変化があったときに、再度、それぞれのSurfaceに動的に値が設定されるが、
その値は同一のActivity内のSurfaceの場合、適当になるという恐ろしいバグのような仕様がある。
そこで、onCreateを代表する、onSuspendやonResumeなどすべての画面変化があるタイミングで、
一番上になるSurfaceに対して、SurfaceView.setZOrderOnTop(true);
という形でZを強制的にTOPする機能を使い表示順を調整する必要がある。
>>487 機種依存か、外部ギャラリーの影響か、
が不明ですが現象が出ない端末もありました
image = (ImageView) findViewById(R.id.imageView); Bitmap bitmap = BitmapFactory.decodeFile(str); image.setImageBitmap(bitmap); ファイル指定をstring型で指定したいんだがこれじゃエラー出るんだが何が問題なのか教えてくれ
なんてエラーが出るのか、strの中身が正しいのか、指定したファイルが存在するのか、画像ファイルがでかすぎないか等々
その中だと strのファイルパスが間違ってそうだな res/drawableに突っ込んでる画像の場合階層までstrに書かないと行けないのか?
指定の仕方が間違ってる
BitmapFactory.decodeResourceを使うべし
BitmapFactory.decodeResourceだと BitmapFactory.decodeResource(r,R.drawable.画像ファイル名); で直接書き込んだ画像ファイル名しか出せないんだ 画像のランダム表示したいんだが randで生成した数値入れたいんだが
IDは大抵連番になってるのでそこから計算すりゃいける なってないなら配列に必要なID片っ端から突っ込めばいける
>>487 対策はなんとか出来ました
トリッキーな方法なので記載は省きます
こんな仕様では困りますね
こういうエラーじゃないの?ってヒント出てるのに、確認もしなけりゃ、ログも貼らねえって、修正する気あるの?
R.drawable.xxxxのxxxxの部分を文字列で指定してid習得するメソッドあるだろ
context.getResources().getIdentifier(name,type,packageId) を使えばresId取れるよ
501 :
501 :2014/06/25(水) 04:14:57.97 ID:f0T0UhRE
質問さして下さい。 EditBox付きのアラートダイアログを表示し OKの場合EditBox内の文字列を取得したいのですが アラートダイアログが表示される前に、EditBox内の文字をActivity側で取得してしまいます。 コードをさらした方が解かりやすいと思うので、下記に書き込みます。
502 :
501 :2014/06/25(水) 04:18:48.01 ID:f0T0UhRE
アラートダイアログを作るクラス public class PropatyDialog implements DialogInterface.OnClickListener{ private Context context; private EditText foldername_editbox; private String folder_name = ""; private PropatyDialog() {} public PropatyDialog(Context context) { this.context = context; this.foldername_editbox = new EditText(context); } // テキストダイアログ表示メソッド public void showFolderNameDialog() { AlertDialog.Builder ad = new AlertDialog.Builder(context); ad.create(); ad.setTitle("フォルダ名入力"); ad.setView(foldername_editbox); ad.setNegativeButton("NO", this); ad.setPositiveButton("OK", this); ad.show();} @Override public void onClick(DialogInterface dialog, int which) { if (which == DialogInterface.BUTTON_POSITIVE) { folder_name = foldername_editbox.getText().toString(); } else if (which == DialogInterface.BUTTON_NEGATIVE) { folder_name = ""; } } public String getFolder_name() { return folder_name;} }
503 :
501 :2014/06/25(水) 04:21:35.37 ID:f0T0UhRE
Activity側 PropatyDialog pd = new PropatyDialog(this); pd.showFolderNameDialog(); Log.v("FolderName", pd.getFolder_name()); if(!pd.getFolder_name().equals("")){ OpenAndWriteFileByJava folder_item = new OpenAndWriteFileByJava(this, MAIN_FOLDER_URI, pd.getFolder_name(), false); folder_item.makeFolder(); } 上記のpd.showFolderNameDialog();の前にpd.getFolder_name()が 呼び出されてしまいます。 どうすれば良いのでしょうか、ご教示願います。
>>501 androidのプログラムをはじめてから何日位?
winから来る人はみんなつまずく第一歩 モーダルじゃないのよ
モーダルダイアログはどう実装するの? という所は皆通る道だと思うが、ああいう間違い方はしちゃ駄目だろ 仕様を確認せずに適当にプログラムやってる人には多そう
まさかダイアログにモーダルが無いなんて想像もしねーぞ 普通は(笑) トリッキーだけどモーダル風な動作は実現出来るけどね さて、思いつく事が出来るかなぁ
ここ質問スレですよね?
>まさかダイアログにモーダルが無いなんて想像もしねーぞ 俺もそう思うよ。まさか無いなんて想像もしねーと思う で、ダイアログを実装しようと思った時には 「ググって出てきたこの実装例は、モーダルとモードレスとどっちなんだろう?」 ってならないかな モーダルだと信じ込んでコピペってそりゃないでしょって思っただけ モーダルを実装したいのならググれば沢山出てくるし
>>509 >>モーダルを実装したいのならググれば沢山出てくるし
今は沢山あるの?
自分が始めた頃は見つけられなくて非常にトリッキーな方法でやったけど、
始めたばかりの人はandroidに慣れないと...だからモーダル無しで実装しましょう
モーダル : ダイアログ表示中はアプリの画面が入力を受け取れない モードレス : ダイアログ表示中にもアプリの画面が入力を受け取れる というわけで、Androidのダイアログはモーダルです。
ちなみにエミュは裏の画面を触れるよ
使う方からしたら、モーダル邪魔なだけだろ。 最後のバックキーにフックされてたりするとさらに怒りMAX。
根本的にモーダルを勘違いしてる模様
>>511 >>モーダルダイアログ 【 modal dialog 】 モーダルウィンドウ / modal window
>>一度開いたダイアログボックスを閉じるまで、他の操作をできなくするタイプのダイアログボックス。
>>511 カスプログラマの認定証書を差し上げるから住所・氏名のを記載をして下さい
この場合はモーダルが云々じゃなくて、ダイアログの表示タイミングの話だろう。 UI操作は即時反映されなくて、ルーパーが処理していくってのを教えてあげればいいのに。
ダイアログを出した時点で止まらない仕様がクソって事だ 何故こんな仕様を採用したのかが不思議だな
またいつもの奴か
下手に別の知識あるとつまづくってことか androidから入ったからモルダーとかモリガンとかわけわかめ
木造モルタル製
>>521 Cも使えないバカって事をわざわざさらすこともないのに...
2chmateだと、お前、朴だそ
今は?
>>521 別の言語の知識があるというよりは
別の言語ではできるのにAndroidでは出来ない、欠陥だってケチ付けてるだけだよ
528 :
501 :2014/06/26(木) 05:54:09.72 ID:y+oHl+gr
すいません、ググって色々調べたのですが どうしても上手くいきません どこをどうすれば良いのでしょうか。 さっぱりわからないです。 教えてください。
ダイアログの次に処理したい事はダイアログのon...で処理をさせる 慣れるしかない モーダルのような動作も出来るがイレギュラーなのでお勧めしない 別activityでやると簡単に実現できるが...スマートではない
530 :
501 :2014/06/26(木) 06:45:05.41 ID:y+oHl+gr
>>529 う〜ん・・・
頑張るしか無いのか
実際、新たなダイアログ風のActivityを作って
Intent投げて値を受け取る方法すれば簡単
なのは、一応発想としてはあったのでが
ダイアログでなんとか出来るようしたいので
頑張ってみます・・・・
ただ、なんかヒントでもあれば
嬉しいです
>>530 どうしてもってのなら キーワードだけ(説明は大変)
thread、handler、static
handlerは自分が思うように動作しない場合が多々あるのでしっかり調べてね
staticはアナタの場合はいらないね
そういうふうに単純にAlertDialogを表示させるときって, Activity#onCreateDialog()をOverrideして その中でいろいろやるほうがいいんじゃなかったっけ 別のクラスを作ってやるのって普通なの?
仕事ではなく個人でプログラム組んでいるものなのですが 最近になってバージョン管理が大事だということを思い知らされました みなさんが利用してるバージョン管理システムを教えてくださいませんか
>>530 このスレの回答者は「がんばれ」とか「慣れろ」とか、
トンチキなことしか言えないバカがいるから、そういうのは相手しないように。
単に、他人に説明できるスキル(理解力・伝達力)が無いだけだから。
俺も別にプロじゃないし,一人で趣味で書いてるだけだけど ふつうにgit使ってるよ 使いはじめた動機が 「更新内容に何書けばいいんだったか忘れそうになる」だけどw, 使ってみたらみたで,以前のコードを確認したり,たまーに大きく巻き戻しをしたり それなりに便利だね
>>535 自分の管理も出来ないヤツがプログラムを組める時代かぁ(呆れ)
>>536 お前が教えてやれよ アホウがエラソーに(笑える)
>>537 eclipseでしょうからegitになるんですかね?
解答ありがとうございました
>>538 あなたみたいにすごいプログラムは書けないでしょうね
最近はsvnは使わないのか
本家もGitだしね 自分はSVNだけど
俺もsvn派 gitはpullするためにはいったんpushしなくちゃいけないから作りかけのログとか溜まって面倒
Gitはpullするためにpushしなくちゃいけないなんてことは無いぞ? EGitとかがそんな仕様になってんの?
Androidのアプリ開発初学者におすすめの書籍はありませんか? javaは一応使ったことありますが、触ったことある程度です。 ほかはCがある程度使えます。
何度も出てる質問だが,「特に本でおすすめのものはない」というのがよく出る答えじゃないか 俺もそう思う 好きなの一冊買ってきて,とりあえず何か作ってみればいいじゃん
アマゾンで検索してレビュー嫁
本探してるのは今の時代のプログラミングに向いてない人種
本も探さないやつこそ技術力の底が浅いに一票だわ。
>>548 で言ってる本ってのは言語の本のこと。それとアルゴリズムなんかの本を一緒に考えるのは頭が悪い
>>548 たいしたプログラムを組んでいない事がまるわかり
わかりやすい人だな
>>545 まずJavaの入門書じゃない?自分は少なくとも20冊以上の技術書読んでる。自分は趣味だからプロの人はもっと読んでるかも。。
それでも足らずブログやAPI仕様をググったりする。なんせSDKはどんどん進化し古いAPIはdeprecatedされる。せっかく覚えても無駄になる。アイコン作るのにGimpやInkScapeも勉強する。。ネットワークやデータベースも勉強する。眠くなってきました。
お薦めサイトて話題になった事無いな良し悪しが大きいから何ヶ所か回って 自分に合った所見つけるしかないが
いまお勧めでも明日にはカスになるそれがAndroidの開発 どんどん変わっていくから一番は本家のサンプルであったりSDKの解説ページ
wearable support libraryってSDKマネージャから取れないの??
>>507 今の風潮は利用者の自由を妨げるからってModal排除なんだよな。
ブラクラとかあったから仕方ないっちゃ仕方ない。
言語のモデルとUIのモデルをゴッチャにすんなって既に出てんのにまだ言うか
>>555 wear端末と通信するだけなら最新のV4かv13のsupport libraryでダメなの?
wearableアプリ自体はAndroid studioじゃないと作れないみたいだけど
モーダルと、モードレスが逆になって会話されてる気がするんだけど。
あなた疲れてるのよ
モルダーレス
スカリーどうした?
>>560 Android Studio だと・・・
なるほどありがとう
状況なし mode less 状況付き modal
materialデザインの動画にのってた電卓の数字をおした時のアニメーションの出し方わかる人いる?
×mode less ○modeless
すべてのアニメーションはパラパラ漫画です
そりゃTweenAnimationだけだ
SharedPreferenceに変更を加えても onSharedPreferenceChangedメソッドが呼ばれないんですけどなんででしょう? onSharedPreferenceChangedの中にデバックやらログやら仕込んでも一向に通りません。・ public class XXXXXX extends Activity implements SharedPreferences.OnSharedPreferenceChangeListener{ protected void onCreate(Bundle savedInstanceState) { 変更ボタン配置 // 省略 } public void onClick(View v) { 変更ボタンクリック時のSharedPreference更新処理 } @Override public void onSharedPreferenceChanged( SharedPreferences sharedPreferences, String key) { Log.v("MYAPP","onSharedPreferenceChanged"); } } よろしくお願いします。
setOn〜で受取先セットしてない
下記でtextviewに文字列追加したら文末にスクロールするようにしてたのに、なぜかスクロール後に文頭にもどるようになってしまった アプリ切り替えした場合もスクロール位置から勝手に文頭まで戻ってしまってる どこらへんが怪しいかご教授お願いします scrollView.scrollTo(0, textView.getBottom());
accesibilityserviceで登録したサービスが動いたり動かなかったりするんだけどこれって何故かわかりますか? 動くときは動くんですが動かないときはonAccesibilityEventの頭にブレークポイントやログを仕込んで色々操作しても全く通りません ユーザ補助からサービスはonにしています よろしくお願いします
r23にアップグレードしたら、srcとgenの中身が生成されなくなった。 新規にActivity追加しようとしても、Finishが押せないし。 ADTのr23がまだだから、ひょっとしてIDEAなら行けるかと思ったけど、おなじだった。 古いのダウンロードできないし、完全に嵌ったorz
eclipse単体で落としてリポジトリ手動設定して等数年前見たいな事するか 新しいのでいいからまるっと新規にインストールすれば治るんじゃないかと
ADT23もなんかいろいろ問題あるみたいだね これから先はAndroid studioを使えってことか
インストールし直したけど元に戻した いろいろと酷過ぎる
既存のがうまくコンパイルできなかったけど、 とりあえず、マニフェストじゃなくプロジェクトの方の「buildtarget」をLのものにしたら、通った。。。 build-toolsかSDKToolsのどっちかしらんが、それに釣られてSDK Platformも変えていかないかんのな。 22.6までは、4.0.3だけの環境でもビルドできてたのに。
AndroidがWindowsと違いダイアログ類が不親切に設計されてるのは Googleがダイアログはもう古く、革新的ではないので、開発者はダイアログに頼らない 使わないUIを設計してほしいという考えからなんだけどね。 しかし多くの人がWindowsのUIに慣れてきていてダイアログは使いやすいわけで Googleが理念を勝手に押し付けてきてるだけ ライセンスとか企業間の事情もあるのかもしれないけど なんにせよいい迷惑だよね
動作はモードレスなのにUIはモーダル(笑)
>>584 今どきActionBarSherlock使うからか
ちゃんと目も通さずに見えないものをみてパニクるか
いずれかが狂気の原因だろうな
8 months ago 。。。 setTextIsSelectableはAPI11から
Androidのアプリ開発はいい加減Android Studioに移行しようと思うんだけど、今のところなにか重大な欠陥ってなかったよね?
>>587 NDKが面倒ってくらい
あとはGradle使ったことない人にはちょっと大変かも
でもその程度
>>581 anotations.jarのファイル名と格納パスが変更されてる
新しい奴をエラーが出てるパスにコピーしてやれば4.01でもコンパイルできる
>>587-588 NDKサポートはComing soonになってるね
それと現状、トラぶったとき参考になる情報がほぼ英語だけなのが問題か
英語は特に問題無いし、NDKはあんまり触ってないから、それくらいなら早く移行しようかな ありがとうございます!
リアカメラとフロントカメラを同時にopenする方法ってありますか?
前と後ろ同時か…。エロいな。
>>592 それはフレームワーク側で出来ないように作っているものを
回避する方法は無いですか、ってことですか?
libcamera系のLibraryに入ってる関数叩けば行けるんじゃね? APIになっとるかどうか知らんから、 Version上がった時に関数が気えるかも知れんが。
596 :
592 :2014/06/30(月) 22:10:24.58 ID:UzQr/n1p
galaxy s4のデュアルショットみたいなのを実現したいです。 フロントとリアを別々にcamera.openすると強制終了するので別の方法がないかと思いまして。
597 :
デフォルトの名無しさん :2014/07/01(火) 04:54:32.20 ID:gNIcSUsx
寝そべりながら、Androidタブレットで荒いレイアウトだけできるアプリは無いものか…
>>597 SL4AってソフトをAndroidに入れればAndroidだけで割りと簡単にGUIを創れる。
ただし、ソースかかなきゃなんないんだけど。
こんな感じでレイアウトを作る。
| os layout |
layout :=
'<?xml
version="1.0"
encoding="utf-8"?>
<LinearLayout
xmlns:android="
http://schemas.android.com/apk/res/android "
android:id = "@+id/BackGround"
android:orientation = "vertical"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:background= "#ff000000">
<Button
android:id = "@+id/Hello"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "Hello"
>
</Button>
</LinearLayout>
'.
PackageLoader fileInPackage: 'Android'.
os := Android new.
os fullShow: layout.
そのソフトの存在意義が良く分からない
PCない時はお絵かきアプリでGUIスケッチして後でレイアウト組んだほうが現実的だろ
603 :
デフォルトの名無しさん :2014/07/02(水) 03:00:19.30 ID:07ugODkY
>>599 ありがとうございます。ネックはおっしゃる通り、タブレットでソースを…というところですねw
604 :
デフォルトの名無しさん :2014/07/02(水) 03:01:09.43 ID:07ugODkY
>>602 おお、ありがとうございます。
これから試してみます。
605 :
デフォルトの名無しさん :2014/07/02(水) 04:28:48.06 ID:07ugODkY
>>602 試してみると、アシストありのソース作成ですね。
なぜだか分かりませんが、Nexus7(2013)で、ソースに間違いが
あると、落ちるようになってしまいました…
581 Updateで治ったっぽい。
最新のSDKを正常な手順で入れたら正常に動かねえじゃん あれこれ情報収集してやっと動くとか Googleはこんなこともできないレベルの技術集団なんだな、呆れたわ
google様「情報収集もできないやつは諦めろ」
このあたりはMicrosoftの技術力には遠く及ばないんだよな さっさとM$が復権して、調子に乗ってるだけのAppleやGoogleをわからせてやってくれないかなぁ・・・
実際問題MSの復活は難しいと思うよ Googleは作りこみ50%の商品を市場に次々と投入し、たまたまHITした商品だけ残し、ダメな物は1年で切り捨てていく下手な鉄砲数撃ちゃ当たる戦略 批判や不都合上等主義。AndroidもたまたまHITした商品の1つ。 MSは正反対で作りこみまくった商品を市場に慎重に投入。当たれば大きいが売れなかったした時の代替商品が無いためダメージが深刻化する。 それだけスピードが遅い。 頭の硬い職人集団みたいな会社だからね。 1年単位でコロコロブームや世代が目まぐるしく変化するIT産業ではGoogleの戦略の方が今の所有利なんだよなー
MSのゲイツ、アップルのジョブス、Googleの、、、グーグル先生? 誰なんだろ?あんまり知られてないよね?
MSってそういう会社だったっけ?
人の名前を挙げてるのは企業のイメージ戦略だろ おまえらってほんとそういうのに弱いよな
616 :
デフォルトの名無しさん :2014/07/02(水) 20:15:27.08 ID:ve/as7vo
ネット上のいろんなページにスケジュール形式で掲載されているイベント情報を開催日ごとにまとめて表示するアプリの作成を考えています。 最悪手動で情報を入力していこうと思っていますが、できれば自動で情報を取得・整理できたらいいなと思っています。 必要な言語や環境、このアプリ制作をするのにいい方法があればアドバイスをお願いします。
それを全部自分で考えて調べるのが、まずアナタがやるべき事
数値計算ならね
スケジュール取得用のAPI公開されてるならそれ使えば良いし、 無いならスクレイピングしたりしてデータ取る
新しいadmobの広告の付け方についてですが SDKマネージャーからGoogle Play Servicesを導入しないといけないらしいですが Extrasの中にGoogle Play Servicesが表示されていません。 原因不明なのですが、この場合はどうすればよいでしょうか?
ダウンロードする
623 :
デフォルトの名無しさん :2014/07/03(木) 09:51:39.44 ID:2KaEcSvd
◎2chスレッド勢いランキングサイトリスト◎ ★+ニュース板 ・ 2NN (推薦) ・ 2chTimes ★+ニュース板新着 ・ 2NN新着 ・ Headline BBY ・ unker Headline ★+ニュース板その他 ・ Desktop2ch ・ 記者別一覧 ★全板 ・ 全板縦断勢いランキング (推薦) ・ スレッドランキング総合ランキング ・ ログ速 ★全板実況込み ・ 2勢 (推薦) ・ READ2CH ・ i-ikioi ※ 要タイトル名検索 ※ 推奨2chブラウザ併用
3台のマシンで試したのですが、全部Google Play Servicesは出てきませんでした。 今は出ないようになってるのでしょうか? 出ない原因と出す方法があれば教えて下さい。
625 :
デフォルトの名無しさん :2014/07/03(木) 12:00:24.06 ID:BoJyIofx
admobの広告の表示の仕方で教えて欲しいんですけど 今まではxmlでレイアウト作って public class MainActivity extends Activity { LinearLayout layout_ad;//広告表示用スペース AdView adView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); adView = new AdView(this); adView.setAdUnitId("ここに広告のIDをいれる"); adView.setAdSize(AdSize.BANNER); layout_ad = (LinearLayout) findViewById(R.id.koukoku); layout_ad.addView(adView); AdRequest adRequest = new AdRequest.Builder().build(); adView.loadAd(adRequest); } で表示していたんですけど今回はxmlでレイアウトは作成せずに //view(Viewオブジェクトを格納する変数を宣言) private View view; //GameViewオブジェクト(ビュー)を作成 view=new GameView(this); //アクティヴィティにビューを組み込む setContentView(view); としてGameViewで画面を表示させているんですがここに広告を表示させるとき どうしたらいいでしょうか? layout_ad = (LinearLayout) findViewById(R.id.koukoku); この右側の部分がどうしたらいいのかわかりません。
Android-SDKを最新のものに入れ替えればGoogle Play Servicesは出るんでしょうか?
>>626 最新のADKは重度の問題があるらしいよ
ここかム板のどちらかに記載がある
>>626 インストール済みのSDK Platformのバージョンはいくつ?
Extrasの下には何も無い?Android Support Repositoryとかも無い?
Extrasの下は Android Support Library Google USB driver Intel X86 emu... の3つだけあります。 SDKマネージャーのバージョンは22で SDK自体のバージョンはどこで見るんでしたっけ?確か一年は前のものだと思います。 新admobになる前のやつです。
>>629 Packagesメニューの一番上のShow Updates/New Packagesが有効になってないとか?
二番目のShow Installed Packagesだけ有効になってると
>>629 みたいになってそう
自分の使ってるSDKのバージョンを把握してないのはやばいよ
どちらも有効になってます。 バグってる直前のSDKがどっかで入手できればいいんですが。 最近はEclipseと同梱した最新のものしかDLできないみたいですね。
>>631 あとはOptionsのProxyの設定見直しとかCacheをクリアしてみるとかかな
最新のAndroid SDK Tools 23.0.2の環境で問題無くGoogle Play services rev18見えてるよ
中途半端な環境だと問題あるのかもね
>>625 layout_ad.addView(view);
layout_ad.addView(adView);
setContentView(layout_ad);
だと、ダメなの?
634 :
デフォルトの名無しさん :2014/07/03(木) 21:53:19.14 ID:hGF5Qmz5
>>617 ですね!
>>618 ありがとうございます
調べてみたらなんだか大層なものですね、、、
なんとか勉強してみます!
>>620 1週間前に勉強始めて、ようやく2ちゃんのまとめアプリを
見よう見まねで作り終えたところというド素人なので、
「スクレイピング」とか検索のとっかかりになりそうな言葉を
教えていただいただけでも助かります!
ありがとうございます。
>>634 とりあえず正規表現は覚えておいて損はない。
もしくはJavaScriptでのDOM操作とか。
Javaでやるならjsoup使えばjQueryっぽく操作できる
jsoup頑張って使ってるが、まずjqueryを使ったことがないんだよなあ。
638 :
デフォルトの名無しさん :2014/07/04(金) 11:28:38.87 ID:ZKox0ihn
>>633 625です、解決しました!ありがとうございます!
eclipseでxmlを編集しているときにエミュレーターの「実行」を するにはどうしたらいい?
ツールバー
普通は聞かない酷い質問だが初心者なら仕方ないのか
ツールバーをクリックしようがメニューから選択しようが、 xmlを開いている状態だと、「Androidアプリケーション」「XSL変換」 というダイアログが出て実行できないんだが。 煽るだけのバカばっかりだから仕方ないのか
あと一歩なのに、もう教えない
ワロタ。これはダメな質問者だw
うん俺もこういう奴には相手にする気にならんわ
最新のはずのadt-bundle-windows-x86-20140624をDLして立ち上げるとJUNOになってました。 これ古いVerですよね? 一体どうなってるんだろう?
つ ctrl + F11 デフォルトかどうかは忘れた
おま優しいな荒ぶるメカ音痴は赤面か
プログラムの質問ですらないなw ツールは慣れたら使いやすいようにキーカスタムしたりSC確認するだろ普通
単にデータのやり取りをするだけでhtmlなどを返さないようなサーバー側を作る場合、 普通はどのようなフレームワークを使うものなのでしょうか? struts2を使おうと思っていたのですが、これはサイトを作るためのもので データのやり取りだけの場合は使うべきでないのかと疑問に思いました
つApp Engine
StrutsでもレスポンスでjsonなりXMLなりを返せば良いと思うけどね 元々そっち方面向けに作られているものとなるとAxisとかJerseyとかかねえ
普通にCGI勉強してPHPで組め
認識が間違ってたら教えて softreferenceやweakreferenceでbitmapとかimageview扱ったら outofmemoryerror対策にはなるかもしんないけど 落ちないだけで画像見れないって事で根本的な解決になってないような...
>>654 その手の弱い参照は使うときにチェックして開放されてたら作り直せってことだ
>>655 大量の画像扱いたい場合は根本的に足りないイメージがあるんだよね
できるか分かんないけど画面に見えてる範囲のBitmapだけ弱参照使わないとか
見えてる範囲の分だけ描画するとか出来たら良いんだけど
今WeakReferenceとかは非推奨だよ 内部動作が変わったから弱参照がすぐ解放されて何度も画像生成走ることになる Volleyとか使ってLruCache使えってことらしい
マジか、へええ。
gmailとか検索とかからリンク開いて選択したアプリで 呼び出し元となるアプリを特定する情報を取得するにはどうしたらいいですか 自分でつくったブラウザアプリで、gmailから開いたか検索から開いたか(他も)判断したい
でかい画像を扱ってて、Out of Memory で困ってたところ、 inNativeAllocを試したら一発で改善したんだけど、 これってあまり有名な方法じゃないのかな?弊害とか無い?
3.0か4.0かその辺からはBitmapの実態はNativeHeap上に持つのがデフォルト動作じゃなかったっけ
ということは、推奨された方法ってことでいい?
admobなんですが解説ページの通りにやってるのですが (Google Play Servicesのインポート、ライブラリの登録済みで赤線エラーなし) adView = new AdView(this); のところで実機でダイアログが出て停止してしまいます。 デバッグでやるとこのようになります。 >クラスファイルエディタ >ソースが見つかりません adView = new AdView(this);以前にこのエラーが出てるので Could not find class 'com.google.android.gms.ads.AdView' エラーなくても組み込みがうまくいってないようです。 あとGoogle Play ServicesのtargetSdkが9だというメッセージがでるので 9がSDKマネージャーで見あたらないので8や10を使ってやってます。 この現象の原因はなんでしょうか? SDKが古くて合ってないんでしょうか?
古いadmobライブラリがlibディレクトリに入ってるとか 古いadmobライブラリをヘッダで参照してるとか
むしろ3.0以降でOutOfMemoryに悩まされる方が稀かと 問題は2.x系をサポートしていてOutOfMemoryを起こさないようにする方法だと思う これは本当に大変
>>656 3.0以降ならマニフェストにlargeHeap="true"って書くと使えるメモリ量増えるから画像たくさん使うアプリなら有用かもね。
文字サイズや画像サイズについて質問させてください みなさんはあるdip(ldip,mdip,hdip etc.....)を基準にしてサイズを決め (例えば文字サイズをldipでは15spにしたとします) それに何か値をかけていきサイズを決定していってるのですか? ldipではこれだけだからmdipでは◯◯倍 hdipでは●●倍のように プログラミングは楽しいのですが画面サイズのことなど考えはじめると難しくて困ってしまいます
>>668 dpやspで大きさ指定すれば各dpiごとに、自動的に倍率かかるから、検証端末で大きさに問題なければ他の端末でもそこまで大きさに差はでないよ。
今AndroidプログラミングやるためにJavaやってるんだけど、どの辺まで理解してればいい?
作るものに必要なだけだろ
マジレスするとやらなくていいよ androidプログラミングしたいなら最初からandroidプログラミングを通してjavaを知ってけばいい
Javaの基礎知識は必須みたいなの聞いてやってたんだがそんなもんなのか… 開発に必要なPCのスペックってどんなもんなの?
エミュ使わなければ10年前のPCでも作れる エミュ使うのならcoreiシリーズあたりからが無難
プログラム全く素人かどうかによっても変わるな オブジェクト指向言語の経験が適当にあるなら、いきなりAndroidのプログラムはじめても平気だろ
とにかく動けばいいっていう感じならいきなりAndroidからでもOKだな 効率よく動くプログラム組みたいとか最適化したいとかだとJavaもやったほうがいいと思う
>>663 うちと同じだなーでも環境書いてないから違うかもしれないあー
678 :
デフォルトの名無しさん :2014/07/06(日) 10:21:19.73 ID:i/DlaRao
ログ出力するのにLOCAL_LOGVを使用しろってみつけたんだけど LOCAL_LOGVは解決できないってエラーがでてるんだけど これってどういう風に定義するのがいいの? windowsみたいにプロジェクトでプリプロセッサ定義できるの? コードでデバッグモードかリリースモードの判定ってどうやるの? クソロイド、マジでわけわからん。orz
679 :
デフォルトの名無しさん :2014/07/06(日) 10:22:23.28 ID:i/DlaRao
windowsみたいにじゃなくて、VSみたいにの間違いでした
>>678 プリプロセッサは無いからフラグ使うなら自分で定義する
BuildConfig.DEBUGも一応は使える
androidがどうとかじゃないけど Javaにもifdefみたいのがほしいと思うことはあるよな
スペルチェックとか高度に余計な機能は付いてるクセに要る物は付いてない 最近付いた全検索じゃない置換は評価するがって当たり前の機能なんだがな
683 :
デフォルトの名無しさん :2014/07/06(日) 15:12:05.09 ID:i/DlaRao
>>678 なんですが、Antを使用するってのが解決方法なんですかね?
Antって今でも現役で使用されていますか?もしかしてもう過去の物ですか?
今でもAntが主流なら勉強しようと思うのですが皆さん使ってますか?
>>683 さっさと他の業種に行け プログラマになれる素質はない
今でてる最新ADTの問題点って ・Proguardが使えない ・広告がおかしい これだけ? 他にもあったら追加してちょ
Proguardは使えないんじゃなくて挙動不審(怖くて使えない) fragmentでエラーが出るxml、実行時 さっさとダウングレードした方がいい 安心して使えるから
日食は簡単に環境を保存出来るから(今回知った)みなさんも保存しておくべきだったんだよね 今回、自分のメイン機の環境をDVDに保存したからこれからどれだけおかしくなろうがPCを変更しようがほぼ問題はないが、これが無い人は...どうするんだろう
>>688 ID変更乙
ほら、プログラマの資質はないことが丸わかり
バカには無理なんだよ
ID変更疑うなら調べてから認定しろ。どんだけ頭悪いんだ。書き込む度に馬鹿晒すだけだぞ
何にしても、ADTをアップしちゃってドツボにはまった人は、ご愁傷様としか言いようがないね 素朴な疑問だが、どうやって修復するのかが知りたいな うちにはAPI7からあるんだけど...公開すると捕まるから...
すぐ修正されるだろ放っとけ
xmlの画像をボタン押したら画像が変わるようにするにはどうしたらいいんだ ImageView aite = (ImageView)findViewById(R.id.ivaite); 切り替え先のIDは取得したんだがこの先がわからん
695 :
デフォルトの名無しさん :2014/07/06(日) 22:11:54.97 ID:i/DlaRao
>>685 新規Androidプロジェクト作成時にActivityを生成するにチェックを付けても生成されない
>>694 aite.setDrawable〜みたいなのあるだろ
>>697 aite.setDrawing〜 とかならならあった
これ?
>>698 aite.setImageResource();
>>699 ありがとうございます
あっていると思うのですがエラーになってしまいました
R.id.〜がおかしいかもしれないので調べてみます。
GoogleとAndroidの未来を握るJava仮想マシン「ART」を考察する
http://news.mynavi.jp/articles/2014/07/02/google_io/001.html 残された互換性という課題
ただし互換性部分はまだ問題があるようで、
JNI (Java Native Interface)をはじめとする一部機能の動作が異なることで、
既存のコードがそのままでは動作しないケースもあるという。
特にARTで採用されたAOT (Ahead Of Time)コンパイラの性質により、
Androidアプリはデバイスにインストールした時点で
厳密なチェックが行われるため、
互換性のないコードはそもそもデバイスでの実行を拒否されるようだ。
"L"リリースのプレビュー版の紹介ページにも記述があるが、
特に「JNIを使ってC/C++コードを呼び出すケース」
「(クロスコンパイラなど)標準ではないコードを出力する開発ツールを用いた場合」
「新しいGC動作に適合しないテクニックを用いた場合」
の3つのケースを挙げている。
仮想マシンが一新されるのか 今までのは速度で問題あったからな
しかしNDKに手を出そうか考えてたので仮想マシンが互換性なくなると困るなあ しばらく様子見かあ
ソフトウェアキーボードの幅を設定する方法がわからん…… AIU-OpenWnnとかはどうやってるんだ? もしかして12種類全部のレイアウトをあらかじめ用意してるのか?
>>670 インターフェイスとabstractなクラス
を、Androidアプリ作成しながら理解していけば良いんじゃない?
例えば、インターフェイスのSilarizableなんて
なんのメソッドも実装しないけど
Intent投げる時に、まとめて情報取って来たい時に
使い勝手が楽になる。
>>705 横だけどputExtra()にserializableあるんだ、getSerializableExtra()もあるわけね、それは便利だ
staticな変数に入れた情報を信用するな って androidはプロセスが破棄されたり復元されたりで、変数にいれてた「状態」の情報が抜けることがあるってことですよね 状態の情報を入れるのがまずいのであって本当の意味での静的な情報、つまり staticな変数 static String unko = "うんこ";は、いついかなるときも「うんこ」ですよね?
>>707 static使いたかったら、別に使っても良いけど
リクエストコードをまとめてクラスに入れて
public static finale int R_1=100;
みたいな感じで使うことは、あっても
単にstaticでクラスフィールドとして
使うのは、あまり良いコードとは思わない
つーか1回死んだプロセスが復元されるの?
staticにしたい大事なデータは、こまめに端末のdataに保存するようにしてるけど。 static変数に1とか、入れておいて、 もし0になってたら(static変数が消えたら)dataからロードするようにしてる。 これって、手法としてどうでしょうか?
>>708 ふむ、なるほど
ではandroidのプログラミングって不変な静的データってどう表したらいいんでしょうかね
たとえば何かの計算式とか……
static final hoge = "うんこ";で初めに初期化してたらOKってことかなぁ
難しい
>>709 プロセスって言ってしまったのは自分ですね
プロセスと言っていいのかわからないです
いい加減なこと書いてごめんなさい
アクティビティが破棄されて構築されるときにそれに引っ付いたデータもいったん死ぬねってことです
>>710 それだと毎回dataを参照したらダメなんですかね
読み込み時間とかで不都合が?
static変数の初期化時にまずdataから読み込むということ?
static finalなクラスフィールドは良く使うな 定数とか全部これだ
staticだろうが動的変数だろうが関係ないよ。 アプリが背後にまわったとき、いつOSにkillされてもいいように、 サスペンド時にコールされるActivity::onPause()で突然消えては困るデータはファイルに保存すべし。 復帰時にコールされるActivity::onResume()で保存したデータをロードして再構築し 何事もなかったかのようにアプリが再開するように設計すべし。
>>713 画面回転時にいちいちセーブロードが繰り返されるけど、
何か特別な判定とかしてます?
画面の回転を頻繁におこなうアプリなら考慮したほうがいいかもね 自分の場合は頻繁に画面回転するようなアプリを作ったことないので 常にセーブロードしているけど。 まあ対処するならonCreateの引数Bundleがnullか否かで画面回転等による activityの作り直しかどうかを区別して処理を別けるかな。
>>711 C++の話になるけど
例えば、const char *const name="mike";
みたいな事をjavaでしようとしてるなら
実装方法が変わってくる
>>713 Activtyのライフサイクルで別のアクティビティが最全面になる時に
確実に呼び出されるメソッドはonPause()ですよね
ですからここでユーザーのアプリ内操作状態の情報()
回転の判定で良くそういうコードみるけど、回転時にonSaveInstanceStateで何もしなかった場合でもnullが返ってきた気がする。
ActivityのonPauseで保存しなきゃいけないのは確かだけど それをActivityのonResumeで常にロードしなきゃいけないっていうのは違うだろ 普通はonStartかonCreateでいいはず 他のActivityがその保存したデータを編集するような場合はonResumeでロードする必要があるかもだけど それと、Fragment使ってFragment側でデータ保持するようにすれば、 あと画面回転時のActivityのライフサイクルとは切り離せる
途中投稿失礼
>>713 Activtyのライフサイクルで別のアクティビティが最全面になる時に
確実に呼び出されるメソッドはonPause()ですよね
ですからここでユーザーのアプリ内操作状態の情報(EditTextの内容やToggleButtonの状態)は保存しないといけないというのはわかります
ただ静的な情報は保存する必要があるんですか?
何回も繰り替えして恐縮ですが例えば消費税率を表す定数とか……
>>716 C++は触ったことが全然ないんですが
const char *constだからようするに「読み取り専用」ということでいいんですかね
読み取り専用の変数を実現したい場合にstatic finalを利用してはいけないのですか?
>>719 の最後の行の最初の「あと」は無視してくれ
>>720 静的な定数はfinal staticでいいよ
他に保存する必要は無い
Google のコードでもそうなってる
>>718 何もしなくてもbundleに値返ってくるけど(今再確認した)
そういうことがあるってこと??
>>719 復帰処理をonCreateやonStartにしないとまずいケースってある?
俺が知らんだけかもしれんから、onResumeだといかん理由が知りたい
onPauseと対になるのはonResumeだから、onPauseで保存したデータを
onResumeでロードするというのが自然という理由で書いたんだけどね。
他のActivityから戻るたびに書込→読出が繰り返される
>>722 たしかFragmentのonCreateで回転時にBundleがnullで返ってきたことあったよ。
726 :
713 :2014/07/08(火) 15:35:29.32 ID:0T2RVZHt
そうか、未だにFragmentを使ってないから知らなかったよ サンクス そしてActivityは常に1つでSurfaceViewを使った 独自画面遷移のアプリしか作ったことないド素人の かなり極端な意見だった、すまない。
>>726 横槍だが間違ってないと思うよ
>724の動作でいいかと(毎回セーブロードが発生する)
ほかActivity起動する度にデータが破壊されるのを防ぐ為なんだし毎回セーブロードしないと隙が出来る
一番強固でデータ保護に優れてるやり方だと思う
>>727 隙はできないんじゃない?
onPause後にアクティビティが破壊された場合は
onResumeの前にonCreateとonStartが絶対呼ばれることになってる
極端なことを考えるならこんなケースもある onPauseっていうのは画面の最前列を明け渡すってだけで アクティビティの処理をonResumeまで停止ってわけじゃ無い 自分に代わって最前列になったアクティビティが画面をすべて覆わない場合があって、 最前列を奪われたはずの自分が描画処理を行わないといけない場合がある その描画処理の中でアクティビティの状態にかかわるデータ(onPaueeで保存する)を 更新してたりする場合(まあこんなこと本来やるべきでないが) onResumeでそれを上書きするのは好ましくないかも
そもそもなんだけど...ものすごく重要なデータを扱ってるのか? ユーザーがsaveしないでHOME(BackKeyは対処可能)を押すようなデータなんかどうでもいいとは思わないのか? ユーザーが絶対に必要だと思うデータならユーザーにsaveさせろよ
>>728 onCreateとonStartってゲーム中に通話着信やメール受信の時呼ばれなかった記憶があるんだよ
かなり前に試した事なのでちょっとうろ覚えだけども…(onStartは呼ばれる気もするな…)
メールと着信ってメモリー結構食いそうでアプリの破棄起こりやすいかな〜と思い
onPause、onResumeで俺もずっとやってるんだよね
onResume=レジューム(再開)なわけだから正しいプロセスなんじゃないのこれ…?
>>732 onCreate()もonStart()も呼ばれないとなるとonPause()→onResume()になりますよね
メール・電話で非表示になると思われるのでメモリ食う食わない関係なくonStart()は呼ばれるかと
そもそもonPause()で保存しないといけないデータってどういう物なんですかね
どういう条件下かよく知らないけど、 onRestartを経由した場合は、onCreateが呼ばれないよね? だから、更新するなら、onStartか、onResumeということになると思う。 で、onResumeってのは、画面が表示されたか表示される直前だよね? だとしたら、画面の状態に関係する更新は、onStartでしたほうがいいと思うんだけど。
>>732 アクティビティ破棄からの復帰でonCreateが呼ばれないことは無いと思うんだけどなあ
onResumeを信用してるみたいだけど、アクティビティがバックグランドのまま復帰してonResume無しで
画面描画処理関連が走るケースを考慮しなくていいの?
>>734 onRestart経由する場合はアクティビティは破棄されてないからロードする必要は無いんじゃないの?
>>733 onPause時の対象保存データは作ってるアプリによるだろうね
俺の場合はリプレイ再現用にリアルタイムに入力系統をバッファリングしているので
それらを中断時に一時ファイルみたいのに出力してるわな
タスクキラーや、アプリがダウンした時でも元の状態に戻せるように考慮してのやり方さ
>>734-736 ふむふむ
今のやり方でも問題出てないからあまり気にしていなかったが
今後のためにいろいろ参考にさせてもらうよ
>>736 onRestart経由の場合は、static変数はクリアされてないって断言できます?
onSaveInstanceStateで退避したのが onCreateの引数に入ってくるからそれで復帰させるのが基本だけど ゲームのポーズ処理は別だな
>>735 そんなことってあるの?
まあ、自分の場合はresume内でsurfaceViewのスレッド起動する設計だから
resumeが呼ばれない限りメイン処理は動作しない仕組みだけどね。
>>738 staticフィールドに更新される可能性のあるデータ保存したりしないから、そんなのは知らん
インスタンスはonCreate経由してこない限り維持されてる前提でプログラム書いてる
>>740 onPause後、onResume前にsurfaceCreated/Destroyとかが呼ばれる可能性があるぞ
>>729 で言ったような画面を全体を覆わないアクティビティが前面に来たとき
surfaceCreatedとdestroyは使ってない surfaceChangedだけは画面サイズを取得するためだけに使用している その画面サイズも結局はresumeで生成するthread内でのみ使用するので問題なさそう 細かい情報、サンクス!
>>730 「重要」の意味合いが違う。ユーザーにとっての大切なデータ、ではない。
OSにメモリを破棄された時でも、それをユーザーに感じさせずに
アプリを継続動作させるための、アプリ作者側にとって大切なデータ、ってこと。
個人的にはデータ量が多くonPauseやonResumeなどでデータ復元に高い負荷がかかったり 処理が煩雑になって保守負担につながる等のケースなら ユーザーが不快と思わない範囲で復元すれば、完全でなくてもよいと思う。 もちろん完全な状態に戻すことが望ましいけど、ユーザービリティに影響あるなら 無視はできなさそう。
ここでの質問でいいのかわかりませんがお願いします windows7 84bitを使っています。android eclipseでSDK Rev22.3の仮想エミュレーターでTargetをAPI15以上を使いたいのですがTarget API13以上が選べません。SDK ManegerでAndroid4.4.2のAPI19までインストールしてあります。 TargetをAPI13以上を選ぼうとすると×no target selectedと表示されます。どのDeviceを選んでもAPI13以上を選択できません。 ググッてみるとCPUシステムイメージをインストールする必要がありSDKManegerからAndroid4.2のARM EABI v7aシステムをインストールしてくださいとあるのですがSDK ManegerにARM EABI v7aがありません。 これはどうしたらSDK Rev22.3でTargetをAPI15以上を選べるでしょうか?
84bit CPUとか変わったもん使ってるからじゃね?
>>745 SDK managerのtoolsからManage AVDsを起動しても同じ?
>>745 市場に出回ってないような特殊なアーキテクチャを利用されてるのが問題であると思われます
XML(a.xml)の要素の値をstrings.xmlから取得したい。 ■a.xml <item>@string/test</item> ■string.xml <string name="test">あいうえお</string> 上記のようなことをしたい。 (結果的に「あいうえお」が取得される)
そうか。頑張ってくれ。
そうか。頑張ってくれ。
1日あればできるでしょ。
>>750 基本的にその書き方で行ける
ただ<item>タグはルートじゃ使えないから(nameも付けれないし)
<string-array>とかでくくればOK
>>754 xml全般の仕様と特定のxmlアプリケーションの仕様をゴッチャにしてないか?
>>755 特定のというかAndroidのStringResourceをXMLで定義するときの仕様ですが・・・
そういえばSDK Ver22.6のバグは治ったの?
それともa.xmlはAndroidResoucesじゃないんかね、だったら知らんわとしか
すみません64bitです
>>747 同じですね
>>749 22.3ではどうしてもできないならそうしようかとは思います
サービスを作成するとき普通はマニフェストにserviceのエントリを書きますが、 これをせずに、例えば何かのAPIを呼んでシステムにサービスを認識させたりとかって できるんでしょうか? あと、今現在デバイス上にどういうサービスがあるかを知る方法ってありますか? あるいはもっと汚い話でシステムのどこかで何かを見たり書いたりしたらサービスが 見えたり認識されたりするとか...
自己解決しました。
opencvをアンドロイドで使ってる人いる? オートフォーカスをいじりたいんだがどこを見ていいものかわからない…
フォーカスって画像処理っていうよりカメラのハードウェアの処理だと思ってたんだけど違うのか
camera.autofocus(this)
フォーカスポイントをopencvの顔認識で決めて、カメラにそのポイントを渡したいって意味だろjk
OpenCVで顔認識したコールバックでその座標でカメラのフォーカスを決める でもフォーカス範囲指定できるのってOS4以降じゃないっけ?
API別の処理を条件分岐で施しているのですが、エディタ上でLintマーク?がでます。 毎回クリアしてから実行しているのですが、不便です。 条件分岐が間違っているのか、対処法があるのか教えてください。
>>767 マークはマニフェストに書かれたminAPIレベルじゃこれは使えないというエラーを示したものです。
>>767 @SuppressWarnings
or
ウインドウ→設定→Java→コンパイラ→エラー/警告
android studioを使ってアプリを作ってみたいのですが インストールはbeta8.0でいいのかな?
1.02に決まってんだろ
>>767 @TargetApi()を使うようにしてもいいな
cocos2d-xを使ったandroidアプリにadmobの広告をいれたいと思っています。 手順に従って、window>AndroidSDKManager>Extrasフォルダ この中にあるGoogle Play services SDKをインストールするみたいですが、 Extrasフォルダの中にそのような項目は見当たりませんでした。 どうすればよいでしょうか? Android Developer Toolsのバージョンは v22.0.1です。
ADTバンドルがアップデートされたみたいだけど、どうだい? 俺は普段なら気付けばホイホイアップデートしちゃう派なんだけど、今回の問題でアチコチで悲鳴が上がっているのを見て、石橋叩いてる。 すでにアップデートに片足突っ込んでしまって今さら引き返せなくなった人、レポートよろしく。
いっぺんインスコして安定してたらeclipseとSDKをSDカードに丸ごと保存しといて 壊れたらそれを持ってくればいいんでは?
ADTやSDKToolsをアップデートしないで最新のSDKやライブラリを適用できるんならそれでいいかもな
仕事で仕方なくやっている奴以外は もうAndroidなんてやめちもうぜ、つきあいきれねえよ どうせ月5万円もいってないだろ? こんなんやるなら、LINEスタンプやったりクソ株空売りしてたほうがよっぽど建設的だよ
それは完全にキミの中の価値観
自分のほしいアプリがないようだから自分で書いてるだけなんですが
適度に売れている人もいます
ああ、すいません。 この前は違ってたような。
Lunaになったから色々と問題が噴出してるわけで
>>778 コンテンツ屋に雇われてアプリ書いてるわ。普通に暮らせてる
>>775 最新追いかけるのはAndroid Studioでだけやってるわ。Eclipse+ADTのほうはtarget api 15で止めてるアプリばかり。
>>731 ん、bundleがnullになるのはView側に復元するべき情報が無い時なんだな。
自分で何か保存しておけば、単に復元されたかどうか判断することは問題なくできるわけだ。
>>788 まあ、UIをもたないフラグメント使うときは気をつけたほうがいいと思う。UIのないアクティビティは無いので、アクティビティは気にしなくても大丈夫だろう。
ちなみにUIをもたないフラグメントはライフサイクルのロジックをアクティビティから分離したい場合に便利。
最近androidの勉強をし始めたものです。質問させてください。 eclipseのエミュレータで画面を回転(ctrl+F11)させて横にしたいのですが、 エミュレータ自体は回転したのですが、画面が追従しておらず、実質縦画面のままです。 AVD作成画面の「ハードウェア・キーボードあり」にチェックをいれたり、 manifestの android:screenOrientation を "unspecified"にしたりしたのですが解決しません。 ネットで調べるとAVD作成画面で「keyboard supportをYESにする」といった方法が出てくるのですが、 バージョンが違うのか、その項目はありませんでした。どのようにすればよいでしょうか?
ちょっとした四角や円の画像リソースを用意したい場合shapeタグで定義しますよね この場合はどのdpiのdrawableフォルダに画像リソースを定義したxmlを入れればよいのでしょうか? dpで定義してるわけですしres/drawableを作成してその中に入れればよいのか 同じxmlを各dpiのdrawableフォルダに、もしくはどれかに入れればよいのか それがわかりません 力を貸してくだされ
やってみればいいのに
>>792 もちろん試しました
ただ異なったフォルダに入れてしまった場合変換で処理が遅くなるのかどうか疑問でして
それも「実際に測ったのか?」と言われれば測ってません すいません
>>793 ありがとうございました
やはりdpで指定いますし画像リソースとはいえ各dpiのフォルダ数だけ用意する必要はないのですね
すっきりしました
周りの端末が発信してるプローブ要求を自分の端末でキャプチャする方法ってあんのかな?
他のWiFi子機の電文を読もうとするのはやめろや。 よくしらんけど無理なんじゃね。
>>796 要求元のMACアドレスを抽出する方法ないかなと思ってさ。中身はどうでもいいんだ。
よく知らんけど、Linuxで簡単にできるかってと、そうでもないっしょ ましてroot化してるわけでもないAndroidなら尚のこと駄目なんじゃね。あきらめろや。
pagerviewを使っているんですが、draweblelayoutの様に左にスワイプでタブ表示ってできないんですか? 全部pagerviewで管理したいんですけど、横幅が自動的に最大になってしまいます
>>798 Linuxならwireshark使うか無差別ModeにしたSocket使うProgram書けば行ける。
>>800 ドライバがモニタに対応してないと駄目なんじゃね。
surfaceviewで「◎」のように内と外の円で囲まれた領域をぐるっと一周しながら塗り潰したいのですが、回転速度を速くするにはどうしたらよいでしょうか?
>>802 描画速度を速くしたい、
のが希望なのだとすると、ぐるーっと一周塗っていくアニメーション自体は実現できてるんだよね?それを速くするだけなのでは??
androidアプリを初めて繕うと思っていて、先程本を数冊買ってきました。 例えばauのお客様サポートにログインして、そこの情報を取得、表示したいのですが、参考になるサイトはありませんでしょうか? 本屋に置いてある参考書にはサイトにログインする方法などが書いてあるものがなかったので、ご助言を頂きたいです。
勉強中の初心者です。質問させてください。マーケットでapkのサイズが100kb以下とか、コンパクトなアプリがあったりしますが、eclipseで例えばhello worldのみでインストールしても、1mb近くあります。 アイコン画像を容量減らす、など方法があるかと思いますが、実現できません。 ひょっとして、java以外で作られていたりしますか? 極端に言うと、サンプルを作ってみたいんですが、button一つ、テキストエディットひとつ、とかの状態で容量が大きい意味が分かりません。
初期で適用されているライブラリが不要なら外す
>>804 android login oauth あたりでぐぐるいいかも
サイト側がAPI用意してないと無理だと思うけど
auのサイトってoauthなの?
805です。 不要なライブラリを外すのは、フォルダから削除でいいですか? とりあえず、android2.2を最小必須ターゲット、コンパイルでプロジェクトを作成していますが、何もしてない状態でエラーが出ています。 setContentView(R.layout.activity_main) のRを変数に解決できないと出ます。 どれをターゲットにしてもダメで、サンプルどころではありません。 Eclipse4.3 AndroidSDKtool22.3 の構成です。何かおかしいところがあったら教えてください。
libs/support-v4を使わないなら削除 インポートしてるRがandroid.Rになってないか確認 プロジェクトクリーンしろ
805です。 Eclipseとadkを最新にして、javaも入れ直してみました。調べて、コンパイラ準拠を1.6に変更、新規プロジェクトをクリーンもやってみました。 最小必須SDK Froyo ターゲットSDK Froyo 次でコンパイル Froyo で作ると、アクティビティが作成できず。 ↑この構成だと、R.javaなどがありません。 更新してからは、importのR.Androidはなくなってましたが、相変わらずです。 これは、ダウングレードしないと解決できないんでしょうか?
勉強中の初心者がこだわるべき方向のものではないから、俺はパス
こだわりはないんですけど、そもそもエラーで何も試せないので困ってます。 当初は、新規プロジェクトの状態でサイズが大きいことに疑問を感じていましたが、現在では新規プロジェクトの状態でエラーがでており、各サイトのサンプルが試せずにいます。 テストに使う端末がIS06なので、この構成にしています。 最小限のファイルで少しずつ足して、ファイルの意味を理解したかったんですけど、無理そうですね…
>>813 > テストに使う端末がIS06なので、
こだわるべき課題はここだろう。勉強ようならせめてNexus7の旧型でいいから現行のNexusくらいは用意しておくべき。
>>814 すみません。ネクサスは今は用意出来ないです。
今手元にある機種で試すのは間違いですか?
>>815 せめてAndroid4以上じゃないとね。初心者なら。
とりあえずIS06で動かしたいならminだけ8で他は最新でもいいと思うけどね アクティビティが作成できずっていうのがどういう状況なのかわからん コンパイルして端末にインストールまでは、本当にうまくいってるのか?
>>818 プロジェクトウィザードでアクティビティを作るところがあるんですが、選択すると完了できません。
仕方ないので、ターゲットと次でコンパイルのところを上からAndroid4.x、Android4.4にしてみたりするんですが、いきなりエラーだらけです。
なので、インストールする以前に実行できません。
>>816 SDKはtoolもちゃんと入れてあります。
上から、23.0.2、20、20
とこの辺りは最新になってます。
>>819 それfroyoのSDK入ってないんでは?
mainmanifestのactivityの名前はあってる? xmlの書き方で、どっか間違ってない? xmlのなか一文字でもミスったら、読み込めなくて、android.R使おうとするような記憶がある しかもxmlの書き方のエラーはeclipseで出してくれないし
>>819 それはつまりこういうことだな?
Android SDK Tools = 23.0.2
Android SDK Platform-tools = 20
Android SDK Build-tools = 20
それらの他にコンパイルするときに使うSDK Platformっていうのを入れる必要がある
Toolsと同じ階層にAndroid Lとか4.4とか並んでるだろ?
そこを開くとそのAPIレベルに応じたSDK Platformがある
CompileSDKをいくつにするつもりか知らないがとりあえずこの辺いれて試してみれ
Android4.4.2(API19) -> SDK Platform
Android2.2(API8) -> SDK Platform
最新の環境ではFroyoのsdkは入ってないってことですか?
>>821 ウィザードで新規プロジェクトを作ると、Helloworldができているはずだと思うんですが、途中のアクティビティが最低apiが足りてない?らしき英文が出て、作成できません。ターゲットを4以降にすればできるんですけど、それでも出来立ての状態でエラーだらけです。
クリーンなど実行してみてもエラーは消えず。
この状態では各入門サイトがまったく参考になりません。
今まで勉強していたことが無駄になってしまいました。
>>822 プラットフォームは上からしたまで全部入れてあります。
一度、全部削除して、インストールしなおしてみれば?
>>823 それなら、Targetはあんまり関係無いからMinを上げて作ってみたらどうなるかな?
Min上げるとIS06じゃ動かなくなるけど、とりあえずプロジェクトが作れるかどうかの確認として
ここの人たちは、自分の知らないことは適当に流すから気にするな。 eclipseを最初にいじってて、何かのきっかけでエラーでまくりってのはよくある。 たいていは、ライブラリなど何かのファイルを削除したときに起こる。 誰しも経験してるが、復旧方法なんて誰も知らないんだよ。
インストールするなら、 半年くらい前のバージョンのeclipseのセットを探すといい。 望みどおり、小さいサイズのapkが作れるはず。 最近のものはライブラリが勝手に使用されるから、apkサイズがでかくなってしまう。 気持ち悪いよな? それは当然だ。 気にしないほうがおかしいんだよ。 で、ライブラリを使用しないように設定しても、うまくいかないんだ。
何のためにapkサイズを小さくするの?
俺なんてサイズがでかくなって喜んでるのに
>>828 ライブラリに関してはそうですね。まだその段階ではないので、必要ないです。
また、それによってエラーばかりだと意味が分かりません。
当初、サイズを小さくしたかったのは、helloworldのみのapkより、マーケットにある良くできたアプリの方がサイズが小さいのが疑問でした。↑でも書いてありましたが、気持ち悪い、そのとおりです。
文を少しずつ足して増えるのならともかく、初期の状態があまりにも無駄が多いんじゃないかと思いました。
ライブラリは別として、シンプルに勉強したかっただけです。
開発環境がいけなかったのかと、最新にしてみたところ、今ではウィザードを終えた時点でエラーだらけです。
とりあえずエラーの画面キャプチャ貼ってみれば?
試しに最新のAndroid studioでSDK Toolsとか
>>822 みたいに最新で、
compile target min 全部APIレベル8のプロジェクト作ってみたよ
もうAndroid studioのテンプレ生成じゃmin以外手動設定しないといけないんだけど
生成されたのをちょこちょこっといじればサポートライブラリとか無しで正常に動く
デバッグビルドだけどapkは55000バイトとか
>>833 今使っているのはeclipse ケルパーです。
Androidstudioのほうがいいんですか?
>>834 ケルパーは使ったことないからわからんな
たしかにライブラリ勝手に適用するのは僕も嫌ですわ
>>834 いやあまりおすすめはしない
最新ADT環境で小さいAPK作れないとか言ってるからSDKとかTOOLに問題あるのかと思って試してみただけ
もしかして、最新だとウィザードテンプレートが使い物にならないってことですかね。 手打ちで使えば何とかなりますか? 少し前に、appcompat v7が悪さをしてて、検索を参考にしてsdkを22.6から22.3に戻していました。 その後、R.androidのエラーとか、R.javaがなかったりとか、色々エラーが出たので、各サイトを参考にして環境を最新にしてみたんですけど、↑の通りです。
ウィザードでほぼ空っぽのアクティビティ作るだけなら最新SDK用に作ってFroyo用に直すのもそんなに難しくないと思うんだけどね Android studioの場合はAPI19用に単純なActivity作るとフラグメント無しでサポートライブラリも未使用のプロジェクト作ってくれるんで API8専用に直す必要があるのは menu/*.xml アクションバー前提の記述がはいってるんでそこを削除 values/styles.xml テーマ関係の記述をごそっと削除して空っぽに AndroidManifest.xml テーマ使わないように これだけだった Eclipseでも試してみたいけど今手元に環境が無いんだ
ケルパーw
すみません。ケプラーですね。 皆さん色々ありがとうございました。 もう、めんどくさいので一旦アンインストールします。 良ければ、オススメの開発環境を教えてもらえませんか? やりたいことは、Froyoでも使えるアプリを作りたいこと。これは、最新機種でも使えるだろうという考え方があります。もちろん、作りはショボくなるとは思いますが。 Android4.2の機種は一応持っていますけど、古い機種を活用したいと思いました。
>>804 htmlとかpostとかcookieとか
antでコマンドラインからビルドしたら最小限のapkなんか簡単にできるぞ 1.6から対応したやつだって普通に作れる 別におすすめはしないけどw
サムネイルまで含ませていたっていう、ありがちなオチとか
そういや最近のだとlibsの下のライブラリ以外にも ライブラリプロジェクト作って勝手にリンクもされてた気がする
上に載ってるurlは直に叩いて表示される?
基本的にonCreateの中のsetContentViewで指定したlayoutしかfindviewByIdを使えないとおもうんですけど、別のlayoutを呼びたしてfindviewしたbuttonにonclicklistenerをセットすることは出来ますか? この時の別のlayoutと言うのはviewpagerで指定されるlayoutのものです。
findViewById()というメソッドはViewにもあるので LinearLayout layout = LayoutInflater.from(this).inflate(R.layout.dialog, null); Button btn = (Button)layout.findViewById(R.id.button); btn.setOnClickListener( ... みたいなことは普通にできるけど そういう話?
android studioのサンプルプロジェクトください。
850 :
デフォルトの名無しさん :2014/07/15(火) 13:09:21.23 ID:f9isZVnR
すいません、質問させてください 画像が同じかどうかを判定したいのですが private Bitmap[]gazou=new Bitmap[4]; gazou[0]=BitmapFactory.decodeResource(res,R.drawable.orange); gazou[1]=BitmapFactory.decodeResource(res,R.drawable.apple); gazou[2]=BitmapFactory.decodeResource(res,R.drawable.banana); Random rnd = new Random(); int ram= rnd.nextInt(3); gazou[3]=gazou[ram]; このようにランダムでgazou[0][1][2]のどれかの画像がgazou[3]にはいり (例えばgazou[1]が入ったとして)それにタッチしたときにgazou[3]に入っている のと同じ画像だったら正解で点数が10点はいるような処理をしたいのですが タッチした時にgazou[3]とgazou[1]が同じ画像がどうかを比べるには どうしたらよいのでしょうか? gazou[3]==gazou[1]やgazou[3].equals(gazou[1])は数や文字じゃないとダメみたいで 入っている画像を比較するにはどうしたらいいでしょうか? if( ){score=score+10;} ↑この括弧の中にどういった記述をしたらいいでしょうか?
>>850 頭堅いな
単純にやるにはもういっこ変数増やしてそっちで管理すれば?
>>850 BitmapにはsameAs()ってメソッドがあるね。使ったこと無いからよく知らんが
ただBitmap自体を比較するより、リソースIDを格納する配列も用意しといてそっちを比較したほうがいいんじゃね?
853 :
デフォルトの名無しさん :2014/07/15(火) 13:47:36.23 ID:f9isZVnR
>>851 返答ありがとうございます!
変数増やしてそっちで管理するというのはどういった風にすればいいのでしょうか?
ちょっと具体的に聞いてもいいですか?
あと画像自体を比較するのは難しいということですかね
>>850 sameAs(Bitmap other)
>>846 表示されないでしょうか?
当方は特に問題なくみれるのですが。
856 :
デフォルトの名無しさん :2014/07/15(火) 13:56:28.32 ID:f9isZVnR
>>852 返答ありがとうございます!
リソースIDを格納する配列を用意するってのはどういった風にすればいいんでしょうか?
858 :
デフォルトの名無しさん :2014/07/15(火) 14:39:35.64 ID:f9isZVnR
>>854 返答ありがとうございます!
>>857 すいません、とりあえず色々やってみたんですが、うまくいきません。
他の変数で管理するについてもう少しヒントもらえませんか・・すいません
>>858 何しようとしてるのかよくわからんな
たとえばgazou[1]の画像にタッチされたときに、gazou[1]のBitmapとgazou[3]のBitmapはどうやって取得するつもりなんだ?
比較方法がわからんってことは、タッチされた時点でのBitmap取得まではできてるんだよね?
860 :
デフォルトの名無しさん :2014/07/15(火) 15:18:18.32 ID:f9isZVnR
>>859 いえ取得ができてないです
gazou[1]の画像にタッチした時、そのgazou[1]の中身をどうやったら取得できて
gazou[3]の中をどうやったら取得できて同じかどうか比較できるかわからないんです。
恥ずかしいんですが最初タッチされたときの処理に
if(gazou[1]==gazou[3]){score=score+10;}
と書いたりして、ダメだったので
gazou[1]の中身とgazou[3]の中身を取り出して比較するにはどうしたらいいか
が知りたいんです・・
>>860 それなら、gazou[0〜3]の画像を表示して、gazou[0〜2]のどれかがタッチされたってとこまではできてんの?
レイアウトからImageViewとってきてgazou[0〜3]の画像設定してるとかなら、
ターゲットの画像をどのImageViewに設定したかを覚えといて、タッチされたViewと比較すればいいんじゃない?
Viewを覚えとくよりレイアウトのIDを覚えといたほうがいい気もするがまあそれは後の課題
>>860 というよりBitMapの配列なんだよね gazouは。
それなのに比較の仕方はそれでいいの?==
863 :
デフォルトの名無しさん :2014/07/15(火) 15:44:41.11 ID:f9isZVnR
>>861 そうです、gazou[0-3]は表示されてgazou[0-2]をタッチはできる
状態です。
レイアウトxmlは使ってなくて全部GamwViewってクラスで
canvasで描画して画像表示させてるんです。
仮にランダムで gazou[3]=gazou[1]になったとすると ただ同じ値を参照してるだけだと思うんだが
>>863 なんでそんなことしてるのか知らんが、それなら、
自分でcanvas上の位置を指定してgazou[0〜2]を描画して、タッチされた場合はcanvas上の位置を取得できてるってことだよね?
ターゲットになるgazou[0〜2]のどれかを描画した位置を覚えといて、タッチされた位置と比較すればいいじゃん
>>864 うむ。単純にBitmapをgazou[3]=gazou[1]してるのなら==で比較すればいいと思った
でもそれがダメだっていうんでどういう有様なのかなっていうのを聞いてみてる
867 :
デフォルトの名無しさん :2014/07/15(火) 16:01:32.56 ID:f9isZVnR
>>862 BitMapの配列に画像を入れてます。
gazou[3]にでてくる画像をgazou[0][1][2]に表示される画像から選んで
同じのにタッチして正解みたいなのをどうやって同じ画像が入っているかを取得して
比較すればいいのかが知りたいんです。
868 :
デフォルトの名無しさん :2014/07/15(火) 16:17:49.65 ID:f9isZVnR
>>865 今勉強中で色々なやり方を試していました。
本当ありがとうございます!とりあえず伺った内容でひとまず
できるかどうか頑張ってやってみたいと思います。
本当おつきあいありがとうございました!
他の方々もありがとうございました!
しばらく考えてダメだった時はまたうかがいたいと思います!
>>868 頑張って
変数に入ってるのは画像でなくて参照値なんだが、そういうandroid関係なくプログラミング知識みたいなのはあるのだろうか
とにかくプログラミングはいろいろやってみよう 俺もいまから自分の課題を試行錯誤する
870 :
デフォルトの名無しさん :2014/07/15(火) 18:59:16.80 ID:zzmBYH9E
Androidプログラミング初心者で今android:autoLink属性のところをやってるんですけど <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:autoLink="all" android:text="サイトは、(URL)です。メール(メールアドレス)または、電話(電話番号)からお願いします。" /> URLとメアドと電話番号にリンクさせたいのに、すべで1続きのURLとして認識されるんですけどどうすればいいんですか? スペース入れてもダメでした。
HtmlとSpannableでHtmlリンクを自分で作る
>>866 オブジェクトの比較は==ではなくequalsを使いましょう
基本中の基本
>>872 gazou[3]=gazou[1]で参照を代入してるわけだから、
オブジェクトの比較じゃなくて参照の比較でいいんじゃね?って意味で
>>866 を書いたんだけどダメなのかね?
>>873 ダメじゃないよ
でもそういうロジックは推奨はされないだろうなあ
昔、オブジェクトの比較に==を使ったらダメだったことがある。コールバックで渡された引数と比較したんだが。。 この渡されたオブジェクトがクローンされた別オブジェクトだと決めつけて納得した。なぜならequalsを使ったらうまくいったから。まぁソース解析すれば判明するけど面倒くさい。 Objectクラスのequalsメソッド見れば、同じオブジェクトを比較するのに==使ってる。もし同じ参照値をもつオブジェクトを判定するのに==が使えないとなるとなんも信じられなくなるよ。。
まさにぬるぽ
にゃお、だってequals使えばうまくいったんだよ。==を使わないのは常識なのかな
>>850 画像の比較にこだわるから面倒になっているだけかと
int ramが出ているのだから、それを比較すればいいと思う。
Bitmap[] gazou = new Bitmap[3];
gazou[0] = BitmapFactory.decodeResource(res,R.drawable.orange);
ImageButton button0 = new ImageButton(this);
button0.setImageBitmap(gazou[0]);
button0.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (ram == 0) {
score = score+10;
}
}
});
gazou[1]とgazou[2]もそれぞれボタンに配置して、
gazou[1]のボタンが押されたらif(ram == 1)、
gazou[2]のボタンが押されたらif(ram == 2)
ボタン使うのが嫌なら適宜変えて
>>875 うぬ〜?自分あんまりJava自体は詳しくないので良く知らないんだけど、一般的にはオブジェクトの参照の比較は禁じ手だったりするの?
今回のような場合中身を比較するべきじゃ無いと思うからあえて参照の比較にしたんだけどダメ?
>>880 複数の変数で一つのインスタンス参照を使うと、なんかのタイミングでどれかが解放されたりすると他の変数が死ぬ。
=で比較するよりeqで比較したほうがGCの対象になりにくい
>>881 そこで言う解放っていうのは具体的にどういうことしたときに起こるの?
どれか変数がインスタンスへの参照を持ってる限りそのインスタンスはGCされないよね?
わかっていない人がわかってるように書いてるから他のわかっていない人はとまどうだろうな...
>>881 どうして一方で参照され続けてるのにGCがくるの?
俺知識ないからわからん 教えてくれ
gazou[3]=gazou[ram]; の直後の次の行で if(gazou[3]==gazou[ram]) の結果はどうなるの?? または別スレッドで判定していて、ビジビリティとかリオーダーとかからんでない? なんか、気になります
ちょっと調べてみたけどAndroidのBitmapとかViewとかのequalsは==のままなんだね? だからどっちを使っても動作的には違いはないのね この手のオブジェクトの場合には同値性のチェックがtrueになるようなケースは参照を複数の変数で共有する場合しか考えられないわけで、 それが動作に悪い影響与えるって意見は変な感じだね そいで、改めて疑問なのは、参照比較と値比較を区別して==とequalsを使い分けるのは禁じ手なの?ってあたりかな まあandroidのBitmapでは使い分ける意味は動作的には全く無いけど 二つの処理が区別される文字列とかでは紛らわしいから参照比較するなっていう習慣があるのかな? その習慣が通常のオブジェクトにも適用されるのが普通なのかな?
>>886 >この手のオブジェクトの場合には同値性のチェックがtrueになるようなケースは参照を複数の変数で共有する場合しか考えられないわけで、
なぜ断言出来る?
>>887 ああ、まあ同じ領域に格納されてる参照を比較してるケースもあるかな
そういう場合にだけequalsは使われるべきなのかな?
>>888 今回のお題は参照だが、ファイルから読み込んだものとの比較の場合がある
※実際にはそんなアホな組み方はしないだろうが
>>889 BitmapとかViewを継承してるクラスで、
equalsをファイルから読み込んだものとの比較にオーバライドしてるのがあるってことなのかな?
>>876 そうそう思い出した。
GoogleMap v2を使ったときの話。
addMarkerで作ったマーカーオブジェクトと、OnMarkerClickでやってきたマーカーオブジェクトを==で比較したらうまくいかなかったんだよなぁ
Cで言うところのアドレスとは違うが、定数オブジェクト以外のオブジェクトを==比較してなんか意味あるのか?
意味的な比較を行うよりかは早い気がするけど
Bitmap同士の比較やオブジェクト同士の比較以前に まずは整数同士の比較、文字列同士の比較からやり直したほうがいいとおもうよ 基礎がまったくわからないままやってるから混乱するんだよ
>>892 Javaの一般的なオブジェクトでも==で参照の比較ができるでしょ?
それより
>>888 の「ファイルから読み込んだものとの比較」っていうのがよくわからないので説明してほしい
>>894 Javaで扱うデータにはプリミティブ型と参照型があって、
プリミティブ型は==で値の比較を行う
参照型は==で参照の比較、equalsで値の比較を行う
文字列は参照型
整数はプリミティブ型だけど、ラッパークラスで参照型になってることもある
こんな理解なんだけど
自分の疑問は、参照型に対して==で参照の比較を行うのは一般的には禁じ手なのか?ってことなのですがどうでしょう?
禁じ手もなにも参照の比較を行う必要があるなら、==でやるだろ。
禁じ手とか関係ないわ。文字列だって、参照を比較する必要があれば、 ==で比較するし、中身で比較する必要があればequals使う必要があるし、 要件次第だろ。
JavaScriptやった直後にJavaやると、構文似ているから、うっかり文字列を==で比較してしまったりする。LintでWarningにできないかな
String#intern() してある文字列、みたいな話をしたいのか?
だから、そんな案件があるかは案件次第で知ったこっちゃねぇだろ。別の問題だよ。
javascriptなら===で比較せないかん
オレは==のほうがperlっぽく使えて好きだけど、確かにどの本もたいていは===をすすめてますなぁ。VBAでバリアント使うのも好きっす。そのくせJavaの堅苦しさもたまらなくいい。
壁紙の設定意味わかんね 俺はただスライドなしで画像をピッタリさせたいだけなんだよ
==で比較した場合同じオブジェクトであればtrueだが違うオブジェクトで中身が同じ場合はfalseになるだろ じゃあequals使えばOKかと言うとBigDecimalのような例外もあるからケースバイケースなんだよなー
オブジェクトの比較は分からなくなるな operator==の変わりにcompareメソッドでも用意しておけば?
はぁ...すこしはCを勉強しろよ
equalsメソッドをオーバーライドして、自分の好きなように比較できるクラスを用意するとか このときスーパークラスのオブジェクトとの比較はfalseにしないと、 もしスーパーとサブが混在したら a.equals(b)ならb.equals(a)の原則を保てなくなるかもね
おっとゴメン、スーパーのequalsも変えなきゃダメか。。
>>908 参照値か値かなのにC関係あるの?
ポインタを出してくるんですか?
ID:aQ3jbrl8 = ID:Bx2OZKx5 だろ こいつはわかったようなフリしてるだけで何もわかっちゃいねえ
程度が低いな さすがバカでも(とりあえず)組めるjava
アーキテクチャを勉強しろといえばよかったの なぜ、cを勉強しろといったのか せめてc++と書けよ
バカはバカのまま人生をまっとうすればいい...
なんというブーメラン
泥スレでJavaの低レベルなやり取りとかやめてくれよ
参照って、データ構造が違うの?
919 :
デフォルトの名無しさん :2014/07/18(金) 00:08:10.89 ID:TIpxjMtt
もうPGやめてドカタでもやれよ
PGは土方じゃなかったっけ
参照値と値と、どう違うんだよ。 明日おしえろ。
Android 4.4.4の環境でMedia Playerを使用してHTTPストリーミング最中にseekTo(int)をすると音楽が止まってしまいます(isPlaying()がfalse) HTTPストリーミングではseekToができない仕様なのでしょうか?
こんにちは,以下のページを参考にAndroidでマイコン(Arduino)に指示を出すシステムを作っています.
http://www.ospn.jp/press/20120404no22-2-useit-oss.html マイコン側・・・Arduino UNO R3 + USB_HOST_SHIELD(Sparkfun),12Vのモバイルバッテリ
Android側・・・GaraxySU(サムスン),Android4.1.2
という構成で,マイコンとスマホはUSBケーブルで接続します.
プログラムは以下のサイトから入手し,
https://github.com/yoshidaken1/GettingStartedADK マイコンにはAdkDaio.inoを書き込みます.
Androidにはecllipse経由でAdkDaioProjをインポートし,書き込みます.
(上記のサイトの通りです)
ここからが質問です.
上記のシステムを構築し,無事にLEDをONOFFすることが出来ました.
しかし通信が始まってから5秒くらいすると通信が切れたような状況になり,
LEDのONOFF等の操作が全くできなくなってしまいます.
うまくいかない時はアンドロイド上でプログラムが多重起動していることが多いのですが,
勝手に多重起動してしまう原因がわかりません.
また他にも原因がある気がします.
どなたかご教授をお願い致します.
>>926 わざわざ有線で御苦労さんです
>>うまくいかない時はアンドロイド上でプログラムが多重起動していることが多いのですが,
>>勝手に多重起動してしまう原因がわかりません.
なぜ、多重起動ってわかるのかな?
>>927 はじめに上記のサイトを見つけたので有線にしました.
他に深い理由はありません.
すみません,多重起動という説明は不適切でした・・・.
訂正版エラーが起きる流れ
1.スマホとマイコン接続(1回目),アプリが自動で立ち上がり正常に動作
2.数秒経つと通信が止まる(?)(シリアルモニタが流れなくなり,LEDのONOFFが出来なくなる)
3.スマホ接続しなおしてもうまくいかない
4.アプリケーションマネージャー→RUNNIN→アプリが起動している→ストップする
5.再接続→うまくいく
6.2〜5を繰り返し
という感じです.
多重起動と書いた理由は,
通信がおかしくなった時にアプリを開いた状態でスマホの戻るボタン(ホームボタンじゃ無い方)を押したら,
シークバーの位置が異なる同じアプリが出てきて,
多重起動しているように見えたからです.
928の補足 通信エラーの流れ 1.スマホとマイコン接続 2.アプリが自動で立ち上がる 3.この時点で通信がうまくいく時といかないときがある 4.(うまく行った場合)数秒経つと通信が止まる(?)(シリアルモニタが流れなくなり,LEDのONOFFが出来なくなる) 5.アプリは立ち上がったまま,通信ができていない状態となる この時の対策 1.マイコンとスマホの接続を切る(USBケーブルをはずす) 2.マイコン側→リセットする 3.スマホ側→アプリケーションマネージャー→RUNNING→アプリをストップ 4.再接続 5.通信エラーの流れ3へ