1 :
デフォルトの名無しさん :
2011/05/08(日) 10:59:20.36
MLの新井舞は、やることを根本的に間違っている気がするのだが。
こっちにまで話をだすなよ
前スレ993ですが setRenderMode(RENDERMODE_WHEN_DIRTY)を使って、非同期モードにして メインスレッドでFPS管理をしてrequestRenderをするというやり方はどうなのでしょうか。 メインスレッドの立て方自体がまだあまりわかっていないのですが GLSurfaceViewを使用していても、SurfaceHolderを使ってループをする事に問題は無いのでしょうか。
スマフォだけで開発環境揃える方法を教えて下さい 開発用のパソコンはありますがネットに繋がりません
ビジネスホテルにPCもって一泊すればいいんじゃないかな。 大抵のビジホはネット環境あるよ。
ネカフェでよくね?
ネット環境作るのが手っ取り早くね?
入門用の本に開発環境入りCD付きのもんとかあるんじゃね?
今時ネットに繋がらないPCなんてないだろw そんな化石PCで開発する方が無理だろ
それは化石とは言わん
android の設定画面(音、プロファイル、表示等が並んでいる画面です)のような画面を作ろうとしています。 そこで聞きたいのですが、設定画面で使われているコントロールってなんでしょうか?
>>14 だまされるなよ、あれはPreferenceActivity
>>15 騙されちゃいました。
ごめんなさい!
そしてありがとうございます!
今度こそいけそうです!!
Activityスレッド、計算用スレッド、描画スレッドでスレッドを分けたほうがいいっていう記事を見たんですが それのサンプル的なソースはどこかにのってませんか?
その記事はどこ情報よ
UIスレッドで遅延発生するとANR発生しやすくなるしね 自分の場合は処理用のハンドラーを別スレッドで生成しておいて UIでイベントが発生したらメッセージを投げるようにしてる SurfaceViewやOpenGLは使ってないので 再描画の処理はUIスレッドのハンドラーにメッセージ投げる感じで イベントと処理が非同期になってしまうので、排他は別途ごちゃごちゃと
21 :
デフォルトの名無しさん :2011/05/09(月) 01:10:43.08
設定画面のListPreferenceを押したときに 自分の作ったAlertDialogを表示したいのですが、可能でしょうか? entriesとentryValuesを省略して記述すると項目を押した際にエラーで落ちてしまって困っています
落ちたらlogcat確認
23 :
デフォルトの名無しさん :2011/05/09(月) 03:24:46.27
>>20 全然気にしたことなかったけど
・Activity-UIスレッドで5秒
・BroadcastReceiver-onReceive内で10秒
・Service-onStartとかonStartCommand内で10秒
ぐぐったページにこんなの出てきた
5秒でANR発生って、モノによっては結構キツイよなあ・・
鵜呑みする奴なんて居たんだ。 信用出来るのは、自身で検証した結果だと思うが。
>>21 自作のDialogじゃなくて良いならDialogPreference
自作のじゃなきゃダメならDialogPreferenceを継承して作るか
PreferenceScreenでDialogが表示されるだけのActivityを呼ぶ
この場合値の保存を自前でやる必要が出てくる
アプリ内でどのアクティビティからも共通のメニューを呼びたい場合は それぞれのonCreateOptionsMenuで同じ処理を書くなら呼びなりする方法しか思いつかないのですが、 一か所に書いたらそのアプリすべてに反映されるような賢いやり方はないのでしょうか?
27 :
デフォルトの名無しさん :2011/05/09(月) 10:30:47.06
リアルタイムゲームをつくる場合 threadクラスを継承した計算用クラスのrunでfps管理したwhile文を用意して pauseなどの中でループをbreakさせるフラグを立てる等すればいいですかね 描画自体はGLSurfaceViewを使用するつもりなのですが 計算用クラスを処理している途中で描画がはいって 表示されるオブジェクトごとに表示がちぐはぐになったりしませんでしょうか
>>28 確かにandroidどうこう以前にjavaで継承すればいいだけの話ですね
ありがとうさぎ
admobのアドセンスをオンにしたんだけど アドセンスの広告がでたとき何か動作するとアプリが落ちないか?
>>30 落ちるときと落ちないときがあるね
admob不安定だな
作成したプログロラムをアクティブの時にホームボタンを押すと onPauseとonStopが実行されない時があるのですが、 何か状況によって処理が異なるのでしょうか? 何処を見ても他のアクティブじゃなくなたっ時に実行されるとしか書いていないので理由がわからず困っています。
他のアプリを起動しても呼ばれない?
確認してみましたが呼ばれてませんでした。
>>32 onPauseは必ず呼ばれる
onStopは必ず呼ばれるとは限らない
onPauseの処理が最後まで実行されるとは限らない
>>32 確実に実行したいならちゃんと処理入れないとダメ
描画時に計算じゃないと結局ずれないか?
40 :
27 :2011/05/09(月) 23:12:35.02
ありがとうございます。 計算スレッドが終わったときに、計算終了フラグを立てて 描画スレッドは、計算終了フラグが立つまで空無限ループをする 描画スレッドが終わったときに、計算終了フラグを寝かせて 計算スレッドは、計算終了フラグが寝る&FPS制御時間経過まで空無限ループをする という処理で問題は無いでしょうか?
逆にすっごいカクつく気がするんだけど…
マルチコアじゃないとスレッド分ける意味ないような。 計算結果待ちで描画しなくちゃいけないならなおさら。
EditTextに入力した文字をチェックして、それが禁止する文字である場合 次画面に遷移するボタンを無効にするダイアログを作りたいのですが、文字チェックってどの 時点で行えばいいんでしょうか? 入力を確定した状態(キーボードから画面に戻った時)に判定することは可能ですか? 他の方法として、一度、動的にチェックする?(入力した時点で文字チェックする?)やつを使ったのですが 文字を入力する時以外のキーアクションも取ってしまって、おかしなことになってやめました。
>>42 たしかに言われてみれば、順番に処理してるだけで全く意味が無いような気がしてきました。
ワンダのレプリカ島を作った偉い外国人が、計算と描画でスレッドをわけたほうがいいって言ってたので分けようと思ってましたが
自分のやり方じゃ遅延が起きてももう片方は空ループしてるからおもいっきり無意味ですね
普通にonDrawFrameの中で計算処理をしてしまってもさほど問題は無いのでしょうか
>>44 何故試さないのかね?
その理由が知りたい。
>>45 いま自分のプログラムは仮実装としてonDrawFrameの中でゲームの計算処理をすべてやっていますが
今のところはさほど大きな問題は発生していません。わりと普通に動きます。
ですが、onDrawFrameの中で計算処理をやっていて問題が発生した人がもし居るとするならば
自分も早い段階で手を打っておきたいと思ったからです。
>>46 それは計算処理の内容
→呼び出し回数で処理するのか、経過時間等で処理するのか
ゲームの仕様
→負荷が高くなったときコマ落ちさせるのかウェイトをかけるのか
その辺でも変わってくるからなんとも言えん
>>47 ありがとうございます。
呼び出し回数で1フレームごとに処理しています。経過時間で移動量を変動させたりはしていません。
出来るなら負荷が高くなったときは描画を飛ばしてコマ落ちさせたいと思います。
今はonDrawFrameの中で、前回のフレームと時間を比較して一定時間を越えていた場合に即リターンをさせています。
ニコ動のコメントを文字化けせずに表示するには、どのフォントを使えばよいですか?
50 :
デフォルトの名無しさん :2011/05/10(火) 11:49:17.89
全くの初心者ですが質問させて下さい。 自分で用意したタイムタグ付き歌詞に合わせて歌詞を表示する音楽プレーヤーを作りたいんですが、 頑張って勉強すれば作れるものですか? それともそもそもAndroidでは技術的に不可能ですか? 可能なのであれば挑戦してみたいです!
>>50 ”技術的”にはできるよ
もうあるかもしれないけど、俺でも30分もあれば作れるよ
自分で使わないから作らないし、アホが星ひとつでごちゃごちゃコメント書き込むから作っても出さない
52 :
デフォルトの名無しさん :2011/05/10(火) 13:27:43.19
>>51 そうですか!んじゃ挑戦してみます。ありがとう!
全くの初心者としては、まずJavaを勉強すればいいんですよね?
54 :
デフォルトの名無しさん :2011/05/10(火) 13:36:09.78
>>53 全く初心者だけど、昔からプログラミングには興味があったんです。
でも具体的に何を作ったらいいのかわからなかったけど、
やっと作りたいものを見つけたので、これを機会に頑張ってみます!
webview内のテキストの一部分をタップした時に処理を行うにはどうすればいいのでしょうか。 イメージはhtmlのリンクをクリックしたとき、リンク先に移動するのではなく処理を行いたい、という感じです。
WebViewClient#shouldOverrideUrlLoading
57 :
デフォルトの名無しさん :2011/05/10(火) 15:53:33.70
アメリカではAndroidのシェアがiOSを超えそうですが、 日本でもAndroidのシェアはiOSを超えるでしょうか?
>>55 webviewにリンクのクリックをフックするjavascriptを読み込ませるとか
>>56 ,58
どーも
WebViewClient#shouldOverrideUrlLoadingつかって処理書いて、
戻り値をtrueにすると見た目はリンクだけどリンクしないで処理させることができました。
61 :
デフォルトの名無しさん :2011/05/10(火) 18:45:56.96
XP嬢に作ったeclipse環境でエミュレータ起動すると勝手"="が入力され続けるんですけどなんなんですかね? こんな現象ぶちあたった人います?
62 :
デフォルトの名無しさん :2011/05/10(火) 18:46:42.79
あっ、すいませんXP上でした...。
for (int j=0;j<=100;j++){ (httpアクセス 約1秒ぐらい) txtview.setText(Integer.toString(j)); } このような感じで画面に進捗状況を表示させたいのですが、 随時数値が画面に更新されません TextViewではこのような進捗状況表示には使用できないのでしょうか?
描画は一旦そのメソッドから抜けないと反映されなかった気がする。
ちょっとスレ違いかもだが、 今デベロッパー登録で25ドル支払ったあとまた情報を登録してくれってでて、 google checkoutの画面がでる。 クレジットでは金は引き落とされてるし、 checkoutのアカウントでは Android Market が注文を受領しました。ってでてるし どうすればいいんだ、助けてくれ
すまん自己解決。更新つづけたら、コンソールページでてきた。 まだ処理中ってでて、アプリは公開できないらしいが とりあえずページ切り替わって安心した。 調べても支払関連の質問はでてこないし、俺が急ぎすぎただけなのか、 皆これぐらい待ったのか、 もしくは今のタイミングだったからかわからんけど すまんかった。
数日かかったような気がする
>>64 進捗状況表示するならプログレスバー使ったほうがいいい気がする
ゲージで表示するのはあった気がするが、文字があったかどうかは覚えてない
後非同期で進捗出すだけならAsyncTask使うのが簡単。
admobのSDKを更新して、 アプリのソースコードも少し改変してUPしたらエラーが出て困っています。 なにとぞ助言お願いします。 例外クラス java.lang.ClassNotFoundException 例外発生メソッド PathClassLoader.findClass() java.lang.RuntimeException: Unable to instantiate receiver com.admob.android.ads.analytics.InstallReceiver : java.lang.ClassNotFoundException: com.admob.android.ads.analytics.InstallReceiver in loader dalvik.system.PathClassLoader[/data/app/com.myapp1.apk] at android.app.ActivityThread.handleReceiver(ActivityThread.java:2913) at android.app.ActivityThread.access$3200(ActivityThread.java:135) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2198) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:144) at android.app.ActivityThread.main(ActivityThread.java:4937) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.ClassNotFoundException: com.admob.android.ads.analytics.InstallReceiver in loader dalvik.system.PathClassLoader[/data/app/com.myapp-1.apk] at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) at java.lang.ClassLoader.loadClass(ClassLoader.java:573) at java.lang.ClassLoader.loadClass(ClassLoader.java:532) at android.app.ActivityThread.handleReceiver(ActivityThread.java:2904)
ちなみにマーケットからインストールし終わった直後にクラッシュ発生します。 その後は普通に問題なく起動できます。
ライブラリがエクスポート対象になってないんじゃね?
>>72 >>73 クラッシュは解決しました
マニフェストの中の
<meta-data android:value="*******" android:name="ADMOB_INTERSTITIAL_PUBLISHER_ID"/>
を削除して
com.admob.android.ads.analytics.InstallReceiver
↓
com.google.ads.InstallReceiverに変えるのを見落としてました。
しかしマーケットからアンインストールできない不具合発生・・・;
どうすればいいのか・・・
>>73 エミュでは大丈夫でした。
他のアプリはアンインストールできるのでマーケットの問題じゃなさそうです。
自分のUPした他のアプリも問題なし。
まだ何か忘れてるものがあるのだろうか・・
GridViewで画像を表示していたら、ある特定の端末でのみ画像が小さくなってしま困っています。 レイアウト側でピクセル(px)やdipを固定にしてみても、fillparentやwrapcontentにしても変わりません。 端末の設定も初期状態のままです、エミュでは問題ありません、考えられる原因は何があるでしょうか?
特定の端末って何?
>>77 現在、その機種は手元にないので機種名がわかりませんが、
解像度(画面サイズ)は決して低くありませんでした。
その機種よりも小さい画面の機種で問題ないので疑問でした・・・
マイナーな機種はスルーでいいと思うよ
画面サイズと解像度は違うぞ DELLSteakは画面大きいのに解像度が微妙なせいでLDPI扱いだったり、 TargetSDKVersionが3以下だと表示がおかしくなるやつとかもある
Xpeなんとかは本体に不具合もあるし、エラーが出るならその端末を使わないと分からんことが多い
プログラミングの実機環境の質問をします。 中古でIS01か中華タブレット(2.2以上)のどちらかを1万超ぐらいまでで購入を考えています。 以下、2点について御教示お願いいたします。 質問1 IS01(1.6)でAndroidプログラムの学習をするとして、不都合はありますか? (IS01は特殊な環境で、学習する意味がない。内容に2.2/3.0と大きな隔たりがあるなど) 質問2 中華タブレット(2.2以上)で学習するとして、不都合はありますか? (実装が汚くて、Android標準ではない。中身が特殊で、気を使わないといけないなど)
連レスすいません。 もう一点、質問します。スレ違いでしたら、こちらは回答なしでお願いします。 質問3 選ぶとして、どちらがオススメですか。(中華タブレットならできれば機種も)
学習が目的なら何でも良い(お前が何をオカズにオナニーするか知ったこっちゃ無い) 金稼ぎたかったらまずはドコモで一番売れてる端末買え
バージョンや機種ごとに別物だし、確認作業には実機が要る。 古いバージョンなんかだとクラスが違うので互換性がない部分がある。 今は、2.3以上の環境がいいんじゃね。 趣味でやるなら自分で使う機種を弄れるのが一番いいと思うけどな。
86 :
デフォルトの名無しさん :2011/05/12(木) 00:55:17.99
Android 3.1 とか 2.3.4 とか発表されたみたいだけど、 API Level とかの扱いがよくわからん。 2.3.4 は 2.3.3 と同じで API Level が 10 になるみたいだけど、 2.3.4 でも USB関係のAPIが使用可能みたいに記事には書かれてる。 でも公式サイトを読んだ感じでは、2.3.4 の SDK には API は増えてなくて 3.1 の SDK を使って実装し、minSdkVersion を 10 にすれば、 2.3.4 のデバイスなら動くみたいなことが書いてあるっぽいのですが、 この解釈で正しいのでしょうか?
>>86 記事が正しいんだったら多分そうなんだろうけど
まだ2.3.4が乗ってる端末すらないから確認しようが無い
というか3.Xでコンパイルしたものを 2.Xの端末で動かすのってちょっと無理があるんじゃ… 何のために次期バージョンで統合しますよって話になってんのかと
NexusSが2.3.4だったような?
とにかく機種やバージョン管理地獄に陥ったよな 予想されていたのでgoogleは上手いこと回避する秘策でもあるかと思ってたけどかなりだめだったよなあ この辺りはかなり凡庸な企業だった
Google I/Oに行ってる人いないの?
雑誌アプリの、R25の様なアプリを作りたいのですが、これは、PDFのまとめのようなものなのでしょうか? なにを参考にしたらよいか教えてください。
いやバージョン管理は単に新しいAPI要らないならなるべく古いバージョン相手に作ればいいだけなんだが……? Fragment APIの資料が少なくてつらいってのはあるが。
>>82 中古のHT-03aがいいと思う
1.6から2.3まで対応してるし、devphone(リファレンス機)とほぼ同じ中身だし
他のスレにカキコしたのですが、過疎ってるようで、レスありませんでした。マルチすみません。 GLSurfaceがメイン画面で、createBitmapで作成したcanvasに文字列を画像として書き出して 重ねあわせたいのですが、canvasの2Dテクスチャ変換?が上手くいきません。文字がでるはずが、画面真っ暗。 なにかヒント、もしくは誘導いただけるとありがたいです。
説明が出来ないのならソースを出せ
>>95 >createBitmapで作成したcanvasに文字列を画像として書き出して 文字がでる
そもそもこれはできてるのか?
>>94 格安で1台だけ手に入れたいって言うとHT-03A一択な感じはあるよな
OpenGL ES 2.0が使いたいとか言うとそれなりのしかなくなるし
Web版マーケットのランキングの有料トップのアプリのコメント悲惨だな アプリそのものとは全く関係ないダウンロードトラブルで★ひとつとか 自分とこにもいくつか問い合わせ来たしやめて欲しいわ
>>96 、
>>97 レスありがとうございます。自己解決しました。
管理しているクラスからglGenTexturesの戻り値をreturnしていたのが間違いでした。
101 :
デフォルトの名無しさん :2011/05/12(木) 16:35:53.57
OpenGLを用いてゲーム作成をしております。 採番したTexIDが画像をLoadする度に増えていくので 同じ画像を描画する際には、HashMapに持っている画像と同じだった 場合Loadしないという方法で実装していますが、Activityがバック グラウンドに移ったり、アプリを放置してスリープ状態にすると、 TexIDの再利用ができません。 TexIDを保持していたとしてもLoadした画像そのものが消されていては 意味がないかと思います。 Loadした画像を保持したままスリープやバックグラウンド処理に 移ることは可能でしょうか?可能だとすればどのような事を行えばよいでしょうか?
消されたら読み直せばいいだけ
103 :
デフォルトの名無しさん :2011/05/12(木) 17:05:04.01
>>102 返信ありがとうございます。
TexIDの画像が消されているかの判定は可能でしょうか?
可能であればHashMapで管理されているTexIDの更新を
行うことが可能で同じ画像を読み込むことなく処理が行えるのですが。
androidアプリを作ろうかと思ってるんですが デザインのUIを作るのにどのようなソフトがありますか? お勧めとかあれば教えてください eclipseだけじゃデザインは作れませんよね
PhotoShopとかFireworks
あざーす!
Fireworksは隠れた神ソフト 扱いの悪いアドビのばかー
そういやMatrixEngineはandroid対応しないのかな
AlertDialogのsetPositiveButtonのonClickListenerの中で さらにAlertDialogを出すことは可能ですか? 試してみたのですが、どうしてもうまくいきません。 どなたかご教授ください。
>>111 ありがとうございます。
ということは、普通のことですよね?
API側で落ちてしまうので、よくわかりませんでした・・・。
>>112 API側で落ちるなら落ちるでエラーの内容確認しようよ
ContextがActivityで無いとかそういう落ちっぽい気もするけど
114 :
78 :2011/05/12(木) 23:21:24.58
>>79 機種名わかりました、IS03です
>>80 確かに、ただレンタル会社から借りた状態なので設定は全て初期設定とのこと
それでその機種だけ画像が小さいので「なんで?」って感じです。
もう一度まとめて書きますと
問題:GridViewで表示しているImageViewのサイズが小さくなる
症状:ほとんどの端末では発生しないがレンタルしたIS03でのみ発生
対処:XMLでサイズをfill,wrapやdip,px固定などをImageViewや
その親であるLinearLayoutなどに色々試したが解決せず
そもそも他の機種では問題が起きないのだから機種依存っぽい
希望:何とかしてIS03でも同じような見た目にしたい
解決策をご存知の方や、
もしかしたらこれかも?というヒントをお持ちの方、
是非お力をお貸し下さい。
115 :
デフォルトの名無しさん :2011/05/12(木) 23:26:13.36
画像ファイルにdpi情報あるから、それが反映してるとか言ってみるテスト
>>113 ありがとうございます。
もう少し調べてみます。
>>117 近所の本屋には両方無いので、とりあえず出版日が新しい、初歩からわかる〜のほうを検討してみます。
AndroidでHtmlパースを行っています. 使っているものはJavaで開発したものを移植したかったので、 htmlparser.jarをそのまま使用しています. Parser parser = new Parser(URL); for(NodeIterator e = parser.elements(); e.hasMoreNodes();) { Node node = e.nextNode(); : (htmlタグ取得時がかなり重いです). 質問としては、 @一般的にandroidでのhtmlParserは何を使用するのがふさわしいでしょうか? Aandroidのparseで時間がかかるのはしょうがないのでしょうか? Bこれは板違いかもしれませんが、メモリ消費を抑えて指定タグのみ取る方法 を教えていただけないでしょうか?
>>114 ポートレートとランドスケープで別々のレイアウトに分けてる?
>>114 あれじゃないかな、DisplayMetrics。
DisplayMetrics#densityDpiはどうなってる?
Bitmap#setDensity(Bitmap.DENSITY_NONE)
とかすればどう?前に画像を拡縮されたくなくて使った覚えがある。
レイアウトを揃えたいならpixel数から逆算してdpiを設定してやるとか。
>>120 何を取りたいかによるが、ものによっては正規表現もありかと
>>120 文字列として取得して正規表現かけるか、webviewに読ませてから必要なとこを取得するとか
速度が気になるくらいでかいページのスクレイピングがしたけりゃサーバーでやれば?
126 :
82 :2011/05/13(金) 06:23:40.52
IS01のモックを触って、意外とキーボードが小さいのが判明したため、 HT-03aの中古で検討してみます。 レス、ありがとうございました。
>>124 解答ありがとうございます.
特定のページの指定位置の<p>タグの中身などが今取りたいものですね.
>>125 解答ありがとうございます.
webviewでのスクレイピングやられてる方多いですね.
勉強になりました.参考にしてみます.
確かに、パースされた状態ではなくて文字列として
単純に文字列としてやるだけでもいいですね.
ありがとうございました.
必要な物にもよるけど解釈させたらエラー吐くようなアホHTMLいっぱいあるからな〜 ついこの前似たようなことしたけど結局文字列いじったわ
ちょっと前の話題、無限ループとか書いてあるのにびっくり。 wait() とか notify() とか使えよ…
HTMLの解析って本当にめんどくさい
HTML5の仕様書に載ってるパースのルールはとんでもない複雑さ
だから楽しいんじゃないか
お前らこそ泥に解析させないためにいろいろやってるからなw
めんどくさいから正規表現と置換でお茶を濁すわ。
>>133 アンドロイドに解析させない?HTMLを?
すみませんが、理解できなかったので少し補足などしていただきたい
あー、ごめん。知恵無い人でもわかるように説明できるか自信ないけど。 android限定の話じゃなくてね。サイトは広告見せてなんぼなのね。 ソース解析して必要なとこだけ取り出されるアクセスなんて邪魔なだけなのね。 朝鮮語って何?ごめんね無知で。ヒキコモリニートみたく韓国韓国に詳しくないんだ。
>>137 説明ありがとう
でも、その用件とゴミHTMLは無関係なんだ
そしてアンドロイドは更に関係ない
もっと面白い何かかと思ったが、心意気だけ感謝する
何でこんなアホがこのスレに紛れ込んできたんだろう…
お金を稼ぐ人と親に寄生してる人の差は大きいよね
>>137 だから日本語苦手なら無理せず朝鮮語で書けよ
>>139 そういうなよ
案外こういう人から面白い発想がでるもんさ
知りすぎてるからどうしても発想が貧弱になる
確かにニートの発想力はバカにできないよな 金にならんけど
レイアウトを構築する際に wrap_contentでは小さすぎ、fill_parentでは大きすぎる。 しかし、異なる解像度に対応するために直接値を指定したくはない場合は どのようにサイズを指定してますか?
>>144 画面サイズ取って適当な大きさを割り振る
XMLメニューでボタンを押したとき、onOptionsItemSelectedのitem.getItemIdが リソース通りに返らずに1つずれるんですが、なぜでしょう?
>>144 marginやpaddingを設定する。
もちろん単位はdp。
layout-ldpi、layout-mdpi、layout-hdpiを適切に使い分ければなお良し。
あとlayout_weight。
>>144 LinearLayoutだとして
前後の余白部分にView を置いてweightで割合を調節する。
width or height には0dpもしくは最低限のサイズを設定して、 weightで余白を配分する感じ。
あとmarginも適当に振っておくと破綻しにくい。
<LinearLayout orientation="vertical">
<View width="0dp" height="0dp" weight="0.3" />
<EditText width="fill_parent" height="40dp" weight="0.4" margin=12dp" />
<View width="0dp" height="0dp" weight="0.3" />
</LinearLayout>
この例だとEditTextの左右はmarginだけで余白を決めて、
上下方向はweightで比率を調整している。
応用として、この前後のView を何か別のViewGroupに変えて中に何か置くと、
中央のEditTextの位置を崩さずに周囲に何か別のモノを置くことができる。
iPhoneからの移植でよくある「左右になにか置いてあるタイトルバー」で、
タイトルテキストの位置を中央にキープしたまま周囲に色々置くのに使えたりする。
RelativeLayoutでも似たことはできるが込み入ってくると乱れやすい。
なんか色々あるんですね 調べながらやってみます ありがとうございますニダ
複数の画面間でデータを保持したい、でもフラッシュメモリは使いたくない。 こんな時おまいらどうしてる? おおむね100MBくらいのサイズ
変な縛りだな
まあ、増え続ける機種に個別対応が必要なことがそもそもナンセンスだもんなぁ IE的な変な仕様の端末は淘汰されろって事では
>>154 いやそれ、フィルタ条件は「機種ごと」じゃないからね?
>>152 いや100MBってjavaのプロセス単位のヒープリミットに収まらないから。
まあサイズを別にすると似たような問題を抱えたことはあるな。
そのときは結局ContentProviderを書くのが最善だった。
rootedされたらどうにもならないのはもう仕方がない
157 :
デフォルトの名無しさん :2011/05/13(金) 22:58:37.64
画面の縦横が切り替わる時に、iphoneみたいにクルンっていうアニメーションをつけるには、どうすればよいですか?
Honeycomb使えばいいんじゃないかな
>>157 ギャラクシーで出来てたよ
見てみたら?
この板UTFじゃ無いよね テスト↓ 아호
使えるのか 카무사하무니다 它与你好哦你 死哦此誒四
巣に帰ってください><
間違ったハングルだけどね
トライハングラー
165 :
デフォルトの名無しさん :2011/05/14(土) 10:59:46.67
Galaxy tab SC-01CにはCM3607近接センサとAK8973温度センサが搭載されていると APIは返すのだが、イベントが上がってこない。ダミーなんだろうか?
>>165 そもそもrootじゃないとダメだったり適当な数字だったりする
近接ってのは通話時にタッチパネルをオフにするために搭載されてる
167 :
デフォルトの名無しさん :2011/05/14(土) 12:37:15.84
168 :
デフォルトの名無しさん :2011/05/14(土) 13:19:49.33
あちゃーん!
>>166 ああrootですか。
ありがとうございます。
ググってみます
Androidとは直接関係ないんだけど、 SQLiteのDBに日付を格納する場合、 後で日付の比較処理をしたい場合は どの型で格納しておくのが効率いいのだろう?
俺はlongにした System.currentTimeMillisの形式そのまま
>>173 後でDateとかCalendarのコンストラクタに渡せるから
その方が効率的かも。ありがとう。
しつもんでふ SurfaceViewを継承してスッドレ実装したクラスをメインActivity内のonCreate()で イスタンス生成⇒setContentView()してるんですが、 getHolder().lockCanvas()でCanvasが取得できるようになるまで時間がかかりANRが発生してしまいます 何かよい対応方法はないでしょうか?
TextViewにて、表示文字列内の指定文字列の背景だけ色をつけて、ハイライト 表示のような処理をしたいのですが、方法が考えつきません. TextViewを色つきとなしに分ければ、 改行の見た目は悪くなりますが、実現はできそうな気がしてます. できれば、1つTextViewで解決したいです.
ディベロッパーのアカウントを複数とったりしてる人いる?
>>176 WebViewでローカルコンテンツをロードでいかがでしょうか?
>>175 どこでgetHolder().lockCanvas()やってる?
まさかonCreateでやったりしてないよね?
>>176 文字装飾できるぞ
お手軽にやるならHTMLで装飾して
Html.fromHtmlでSpannedに変換
>>179 同じ作者とみられたくない場合とかじゃね
例えばお色気系とかおふざけ系とかとまじめなアプリ系が同じ作者と思われたくない場合もとあるかと
ぽぽぽーん系作った人はみな新しく作ったと思うけどw
著作権的にグレーだし
>>176 2つにするしかないが、並べずに重ねればこうなる
[A]+[ B]→[AB]
ハイライト部分の文字列取る必要が出てくるなら2つにするのが正解
183 :
176 :2011/05/15(日) 14:02:40.99
解答ありがとうございます. そうですね、TextViewはhtml対応してました! ありがとうございます.試してみます!
以前書いた者ですが、AlertDialogのonClickListener中にさらにAlertDialogを出したくて困っています。 API側で落ちるのですが、内容が「The specifield child already has a parent. You must call removeView() on The child's parent first.」となっています。 removeViewで最初のダイアログを消せ?って言ってると思って調べたのですが、やり方がわからなくて困っています。 ソースは、レイアウトは用意しておらず、処理中でAlertDialog.Builderをnewしてプロパティをセットして使っています。 どなたかご教授願います。
>>182 分けて登録するなら、都度$25払うんだよね?
勿体無いと思うのは、貧乏性なんだろな。
そこそこヒットすれば広告つけてればペイできるでしょ
画像を表示する方法で困っています。 通常は、setImageResource(R.drawable.sample1) やsetImageResource(R.drawable.sample2)、 というように指定するのだと思うのですが、 sample1やsample2などのファイル名をStringの変数として持っておいて、変数の中身によって違う画像が表示されるようにしたいのです。 しかしsetImageResource()の引数はint型なので、Stringを入れることが出来ません。 どうにかしてStringで表示画像を指定する方法はありませんか?
>>189 無理
しょうがないからswitchで、、これも無理
こういう釣り流行ってるの?
>>189 画像を配列にぶちこんで、配列のキー(int)で指定すればどうよ
193 :
189 :2011/05/15(日) 18:54:36.34
>>190 ,192
ありがとうございます。
すみません、自己解決しました。
getResources().getIdentifier(画像ファイル名, "drawable",getPackageName());
でint値を取ってこれましたので解決しました。
リソースから作成したBitmapの一部のみdrawBitmap()する処理を作っているんですが 実際の画像の幅/高さとgetWidth()/getHeigth()した値が食い違っていて 表示する部分がずれてしまいます。 原因になりそうな事って何かありますか?
>>167 ついに沈黙を保ったのであった。
彼の単位は成仏したのか?
でも日曜日の正午に締め切りって何事なんだか。
つか学生じゃなくて、プレゼンのためのモックだかサンプルを「できますよ」 って引き受けてしまったアマグラマと思うのだが。
まあ化けの皮剥がれたほうが本人のためだよね
明日までにコード書いて送って来いとか何様なんだろうな 最も俺には1日じゃこの課題のアプリ作れないけどね・・
1.google mapsのAPI使って現在地から住所に変換?それとも都道府県エリアデータ持つ? 2.無問題 3.座標系変換マンドクセ。でもパクればすぐ。 4.地図だけなら簡単 5.どっからデータ持ってくるんだゴルァ 6.題材としては面白そうだけど可能なの? 「近場カフェ」作った人ならすぐだな。自分は無理だけど。 自分が頼まれたら5のデータはどっかに用意されてる事、 6は発信確認ダイアログにして、2人日でプロトコードだけ、みたいな。
あ、Location.distanceBetweenとかLocation.distanceToなんてあるの知らなかった 勉強用につくってみるかな。
>>200 ACTION_DIAL だね。勉強になるな〜。
画面が今点灯しているか否かを取得する方法ありますか?
すいません。よく調べたらPowerManager#isScreenOn()で 取得出来るようです。
205 :
デフォルトの名無しさん :2011/05/16(月) 06:06:24.41
ServiceでTimerTask使って定期処理したいんですが、電源ボタン等で スリープ状態になると止まってしまいます。スリープ状態にでも動き続けるにはどうすればよいですか?
>>205 AlarmManagerでフラグにWAKEUPの付いてるものを使う
9patchで作った画像のボタンの背景に設定しているのですが、画像が引き伸ばされず一部分しか表示されません。 しかし、ボタンのサイズを大きくするとちゃんとボタンのサイズがに合わせて引き伸ばされた画像が背景に表示されます。 これは画像のサイズが表示したいボタンの背景より大きいので発生しているということでよいのでしょうか?
OSバージョン2.3系でたまに発生するランダムリブート時に データを保存しておきたいのですが、どこで捕捉すれば よいのでしょうか? BroadcastReceiverでシャットダウン通知を受け取れば いいのでしょうか?
>>208 ランダムリブートってOSの異常終了のこと?もしそうなら、そんなの通知されるわけないと思うけど。
>>209 「りぶったー」というアプリがあるんですけど、このアプリは
再起動時に処理をしているようです。
それと同じように出来ないものかと思いました。
>>210 そのアプリは知らんが再起動と異常終了は違うじゃろ
>>208 可能な限り早い時点でデータを保存しておくしかないだろう。
>>210 しかるべき手順を踏んだ正常なシャットダウン処理ならともかく、予期せぬエラーでの強制リセットなんか通知できないよ。
Android自体がエラー吐いて止まってるのにどうやってそのことを(リブート前に)通知するの?
root取ればできるでしょ?
できねえよw 普通のlinuxでもpanic出たらユーザプロセスには通知一切なし
そもそもシステムをそれ以上動作させることが不可能になったから強制終了してるのに、そこで何かできると思うのが間違い。
端末側でクラッシュレポートを送ろうとすると結構詳しい情報を送信するようなことが確認できるのに これらを作者が確認することはできないのでしょうか? デベロッパーコンソールのエラーレポートがどの端末で起きたのかを知りたいのです プラットフォームの欄は全てOTHERになっています
>>217 UncaughtExceptionHandler でも使ってcatchしてから好きなとこに送れ。
もちろん送るにはそれなりの権限が必要になるが。
できない
222 :
デフォルトの名無しさん :2011/05/16(月) 22:27:21.74
Activityの中でsendBroadcastを実行して、BroadcastReceiver内の 処理が行わせているのですが、Activityの中でこの処理が終わるのを 同期的に待つにはどうすればよいでしょうか?
>>222 待てないからBroadcast側から通知を返すしかない
EditTextのInputFilterを使って、文字制限をしています。 処理自体は正常で、対象文字(英数以外)は入力できないようになってます。 それで質問なんですが、現状だと、例えば「あ→い→a→12」と入力した場合 最初に禁止する文字が入力されるので、後の「a」や「12」が入力できません。(確定せず続けた場合) これを、同じように入力した場合、「a」や「12」(禁止していない文字)だけ入力できるようにできますか? どなたかご教授願います。
教授を願ってどうするんだね
あれ、短絡的に書いたんだけど 教授する、とは使うか 願うのもありなのか・・どうだろう・・ どうでもいいかもだけど・・w
ご教示な
ふいんき(ry
>>220 onTouch()がfalseを返せばバー出てこない?
インテント使う際にデフォルトでは画面右から次の画面がmove inしてきますが この挙動を変えることは可能でしょうか?例えば下から出てきたり。
>>231 それはアニメーションの機能を有効にしてるからで、確か固定だったかと。
bitmapを大量に扱うプログラムを書いてるんだけど、 OOMに悩まされてる。 結局bitmap以外のオブジェクトの生成/消滅もあるからヒープの断片化は避けられないのか? 最初にbitmapを何枚かcreateして、そこに描画していくようにしないとダメか? そもそもbitmapを使うのが間違いなのか? bitmap以外にcanvasにテクスチャを描画する方法はないのか? そもそもVMヒープの上限と現在の使用量ってどうやったら分かるんだ? サムネイルとかだと初期化時にビットマップを必要枚数分確保して、 デコードしたデータはそこに一端コピーすることで断片化を回避できるんだろうか? なんかいいやり方とかあったら教えてくれ。
OOMが出るのは断片化が問題じゃなくて 参照が開放されてないビットマップがあったりするからなんじゃないかな
>>224 全部入力許可して入力確定後に禁止文字削除
EditTextの押されたキーを取得しようとsetOnKeyListenerして、onKeyを書きました。 しかし、「あ」や「a」などを入力してもonKeyが呼ばれず、 確定キーでファーカスが移動したとき(変換確定時は実行されない)や、DELキーを押したときにしかonkeyが実行されません。 どうすればすべてのキーを取得できるでしょうか。
どこからでもアクセス出来るグローバル変数的な使い方として Preferenceを使うのは正しいのだろうか…?
>>239 API level 11 の MODE_MULTI_PROCESS で苦労しやがれ。
まあパフォーマンスロスが気にならないシチュなら悪くないとは思うが。
>>240 SCREEN_ONとOFFの度に値をPreferenceに突っ込んだりしてるから、
パフォーマンスロスはあるかもしれない。
>>241 頻繁にファイルIOが発生するのもどうなんだろう?
使い勝手は悪くないけど、なるべく外部保存媒体って
使いたくないと個人的に思ってたり。
>>242 Preference はファイルだぞww
>>243 全く知らなかった。ファイルだったのか…。
そうすると頻繁にアクセスするのはマズいな。
>>245 そんなのPC向けのアプリでもいっぱいあったじゃん。
iOSやAndroidだけ問題になる訳がない。
インテントでTreeMapを渡そうとしてるんですが、 受け取り側でgetIntent().getStringExtra()にTreeMapをキャストして 値を取得しようとするとClassCastExceptionが発生します。 TreeMapはインテントでは受け取れないのでしょうか?
>>247 Stringにキャストできるわけ無いだろ
249 :
247 :2011/05/17(火) 20:25:39.52
>>248 すいません。記載ミスです。
○ getIntent().getSerializableExtra()
× getIntent().getStringExtra()
>>249 んじゃTreeMapの中にSerializableじゃないのが詰まってるんじゃないの?
251 :
247 :2011/05/17(火) 20:49:26.49
>>250 TreeMap<String, Float>と定義して使ってますが、
Serialize可能なクラスではないのでしょうか?
>>251 それだったらいけるはず
とりあえずSerializableで値取って、
デバッグで何が入っているか見てみたら?
SMSで提携文を一括送信するアプリを作ろうと思うんですが sendTextMessageでメールの送信はできるんですが 送信結果の戻り値が sentIntentで取得すると変な番号でもすべてOK deliveryIntentだと正常に送信できたときしかかえって来ません。 送信失敗を取得するにはどうすれば良いでしょうか。 また、その送信失敗の番号を取得することはできますか?
画像レタッチアプリを作っているのですが 静電容量方式のパネルとタッチペンの組み合わせだと 細かな文字を手書きするというのは難しいのでしょうか? 「HTC Flyer」のような静電容量、感圧式両対応のような ハードウェアが必要になるのでしょうか?
二点質問させて下さい 1. Broadcastって取りこぼす可能性はあるのでしょうか まれにandroid.intent.action. BOOT_COMPLETED を取りこぼしているらしき挙動をしておりまして 2. stickyBroadcastが明示的なremove以外ではがされるケースはあるのでしょうか 読むべきリファレンス等でも大歓迎です お願い致します
257 :
247 :2011/05/17(火) 22:23:53.68
>>252 デバッガで見てみたら、何故かHashMapが入っていて、
HashMapでキャストしたら動きました。
TreeMapはいずこへ…。
>>255 自分で実際に試してみればいいんじゃない?
自分が実際に使わないもの作ったってどのみち良いものはできないだろ。
教えてください。 ListActivity + ListView + CursorAdapterで、別スレッドでDBに行を追加しています。 追加完了時に requery()してるんですが、追加された行が出てきません。 ちなみに追加された行は一番上に追加されるはずなんです。(これがダメ?)
このOSは、PCやエミュレータにインストール可能ですか? 携帯・スマートフォンに入ってるのは亜種ですか?
OSの定義が曖昧なので説明しづらいな。 Android = Linux Kernel + 独自init + Dalvik + Javaフレームワーク みたいなもん。亜種ってなんだかよくわからん。 最近の主流はarm系CPU用だが、x86用もビルドでる、はず。 Zaurusで動く実装もあったし、PCで動くのもあったんじゃなかったか。
>>264 ISOイメージがあるよ。
職場のWinXP(x86)で動いてた。
>>264 かなり初期の頃に、x86PCでAndroidを動かすってITMediaかどっかで特集やってた
最新版でISOイメージあげて欲しいなあ
268 :
255 :2011/05/18(水) 00:33:42.96
>>258 >>260 自作サンプルではパネルとペンの相性などもあるのか、
指や先がゴムやシリコンのペンでは、細かな文字を手書きしづらいです。
先細のタッチペンは市販では無いようですし、中々厳しそうですね。
回答ありがとうございました。
269 :
263 :2011/05/18(水) 00:57:05.12
サンクスでした。
Xperia(android2.1)でgp3形式の動画を再生することができたので、 Xperia Play(android2.3)に移植して再生しようとしたら MediaPlayerの「IOException: Prepare failed.: status=0x1」 が発生してしまいました. ソースも再生動画も全く同じです. これは、versionの問題なのでしょうか? 2.3だと動画の再生方法が変わってしまうのでしょうか?
>>271 古すぎる記事をみつけたら、その中のキーワードを使って再検索するくらいの知恵はつけようぜ。
その例だと setProgressBarIndeterminateVisibility とかでな。
てーか細かい文字を描きたいならズーム機能を強化すればいいんじゃね
IntentFilterでブロードキャストして処理する時って アクションの種類によって取得出来る値って決まってるんですか? 例えばACTION_BATTERY_CHANGEDならバッテリーの情報とか取得出来るけど ACTION_TIME_TICKとかに変えてからバッテリー情報を取得しようとすると 取得出来てないようなのですが・・・
>>276 何を言ってるのかわからないが、とてつもない勘違いをしてる気はする
>>276 そのイベントに付随した値しか取れないだろjk
>>277 >>278 なるほど、勘違いして覚えていた気がします・・・
てっきりブロードキャストアクションは何のイベントを受け取るか決めて
そのイベントが送られてきたら、送られた物とは関係なく色々な値が取得出来る
かと思ってました
低レベルな質問に回答ありがとうございます
280 :
262 :2011/05/18(水) 16:25:23.48
あー二重にミスしてた。質問忘れてくれ。恥ずかしい。 裏スレッドでdb.close()してた。
>>273 なるほど。AsyncTaskとかでやらないといけないのか。
ListViewで要素の一番下までスクロールしたら、要素の先頭に戻って スクロールさせ続けたいと思っています。 adaperに
すみません、途中で送信されてしまいました。 ListViewで要素の一番下までスクロールしたら、要素の先頭に戻って 無限にスクロールさせ続けたいと思っています。 adaperにArrayListを登録して表示しています。 良いやり方があったら教えてください。
エミュレータの起動に分単位の時間がかかるんですが、みなさんもそんなもんですか?
うん
>>283 ListViewじゃなくてGalleryでしかやったこと無いけど、
前後にダミーで表示される部分を用意しておいて
最後にきたら先頭に、先頭にきたら最後に移動
みたいにやったらそれなりに動いてるようには見えたよ
Androidでゲームを作りたいのですが、どの解説書が一番いいですか? Amazonで検索したところまともな本がありません。 英語でBeginning Android Gamesというのが良さそうですが、これしかないですか?
ゲームとだけ言えば、作りたいものを言い表せていると思い込める時点で、 プログラムを組むには向いていない。
他人に向いてないと言われてスルー出来ない人は ものつくりに向いてないかもね
>>286 ありがとうございます。
Gallaleryというのは触ったことがないので、少し調べてみます。
ただ、見た目だけではなくて、中のデータ自体もリングバッファ的に
参照先をループすることが出来ないかと調べていました。要素の
追加や削除があったときに、グルグルスクロールさせている内に反映
されていくというか...説明が上手くできないのですが。
スパゲッティに味噌は向いてないと思う
292 :
287 :2011/05/18(水) 23:15:32.26
>>288 そうですね、少し不親切だったかもしれません。知りたいのは、
- BGMと効果音の再生
- キー入力
- 異なる画面サイズの端末への対応
あとは自分で作れるので。
>>284 具体的に何分かかってるんだろう。
因みに自分は1分ちょっとかな。
データベースのバージョンアップについて質問があります。 初期データをassets内のdbファイルから、内部にコピーして利用しています。 データベースのバージョンアップをしたいので、onUpgradeで特定のテーブルのみを書き換えたいのです。 しかし、assets内のdbファイルから特定のテーブルを取得する方法がわかりません。 SQL文をべた書きするのはデータ量の面から避けたいので、assets内のdbファイルから読み込みたいのですが、 どのように実現すればよいでしょうか。
>>283 BaseAdapter 使え。要は positionに対応するviewを用意できればよい。
>>294 SQLite的には ATTACH DATABASE を行えばSQLから複数のデータベースを参照できるのだが、
Androidで ATTACH DATABASE を使うにはたぶんAssets ではダメで実際のファイルに一端コピーすることになるだろう。
やったことないし可能なのかも分からん。
次案としては getDatabasePath(String name) で得られる位置にリードオンリーのデータベースファイルをコピーして、
openOrCreateDatabase(String, int, SQLiteDatabase.CursorFactory) で開く。
アタッチしないかわりに2つのデータベースを同時に開いて、コピー処理は1行ずつ行う。
終わったら リードオンリーのデータベースファイルを削除するのを忘れないように。
USBで直接apkファイルを配置すると 問題ないのですが、自分のHPからダウンロードすると、エラーになり 展開できません expected End of center signature 署名は見直したんですが
エラーメッセージ間違い End of Central Directry signature お助けを 今 会社なので亀レスです。すいません
ftpでアップロードする際にtextモードになってるな。 自動認識ならapkをバイナリファイルの拡張子に設定してみたら。
MIME typeが設定されてないとか?
300 :
256 :2011/05/19(木) 09:35:04.51
>>261 >>274 情報ありがとうございます
取りこぼしは考えづらそうなので他の要因を考えてみます
質問です。 Activityを継承して、onTouchEventメソッドをオーバーライドして処理を記述した場合は タッチされた瞬間、指が離れた瞬間、指がスライドされた瞬間の全てで呼び出されているようなのですが Viewクラスを継承して、onTouchEventメソッドをオーバーライドして処理を記述し そのインスタンスをActivityクラスのsetContentViewでActivityを継承したクラスに追加した場合は タッチされた瞬間のみ呼び出されて、指が離れた瞬間や指がスライドされた瞬間は呼び出されていないようです。 これはこういう仕様なのでしょうか?
>>301 ACTION_DOWNでtrueを返さないとそれ以降のイベントは来ない
ビューのサイズをdipで指定したい場合、 xmlで書く場合はandroid:layout_heightとandroid:layout_widthに"○○dip"と書けばできるのですが プログラム中で追加したい場合は layoutで横と縦の開始位置と終了位置を書くことでしかサイズをいじれません。 どうすればdipでサイズ指定をできるでしょうか。
すいません。 Android初心者なのですが、BigDecimalを使って四捨五入をしようとすると コンパイル&試験端末へのインストールは出来るのですが、実行時にエラーになります。 何故でしょうか? APIレベルは1.5+GoogleAPIで、試験端末はIS01です。
ログに書いてありますが。。
PreferenceActivityで押しても何もしない 表示するだけのリストを作るにはどのコンポーネントを 使えばいいのでしょうか?ListPreferenceだと押したら ダイアログが表示されてしまいます。
よく考えたらカスタムのPreferenceを作って、 リスナーで何もしないようにすればよさそうですね。
309 :
297 :2011/05/19(木) 20:31:22.28
>>297 >>299 ありがとうございます。
転送モードが自動になっていたので、バイナリモードに設定しました。
また
MIME typeが設定されてませんでした。
MIME typeの設定を試みたのですが、.htaccessファイルのアップロードが
そのサーバでは、許されていませんでした(涙)
それで、index.htmlで下記の記述で対応できないか試してみたのですが
結果は駄目でした。
<a href="myapp.apk" type="application/vnd.android.package-archive">MyApp</a>
ちょっと、初めの原因とは、別の要因がネックになってきたようなので、もっと調べてみます。
ありがとうございました。
310 :
297 :2011/05/19(木) 20:32:07.47
失礼しました
>>298 さん
ありがとうございました。
>>306 PreferenceScreenにしてIntentやFragmentを指定しなければ良い
後項目を区切る目的だったらCategoryタグ使うとか
音楽再生アプリで音楽を聴きながら、自分で作ったアプリを起動すると バックグラウンドにまわった音楽再生が停止してしまいます。 落としてきた他のアプリだとバックグラウンドにまわった音楽が再生され続ける んですが何か設定しないといけないんでしょうか?
>>303 float tmpDensity = getContext().getResources().getDisplayMetrics().density;
(int) (dip値 * tmpDensity + 0.5f)で取得可能かと
>>312 むしろ何もしないと鳴りっぱなしになるわけだが
>>314 ありがとうございます。
うーん、ということは何かよけいなことしちゃってるのかな・・・。
AndroidManifestあたりを見直してみます。
>>312 Service とか startForeground とか WAKE_LOCK とか。
>>303 まずマニフェストで anyDensity の有無を確認すること。falseだとプログラムからの座標指定は大半dip単位として扱われる。
trueの場合はピクセル値を指定できるので、DisplayMetrics を見てdpとpxの変換を行う。
PreferenceがPerfumeにみえる・・・
>>316 ありがとうございます。
いま手元にソースがないので確認できませんが明日ためしてみます。
>>319 Intentで起動してます。
321 :
312 :2011/05/19(木) 22:45:25.00
もしかしたら自作アプリの最初にMP4のオープニング動画をながしてるんですが それが原因かも。明日、動画を消して試してみます。 色々とありがとうございました。
322 :
270 :2011/05/19(木) 23:08:08.73
>>272 解答ありがとうございます。
いろいろ調べてみましたが、ホントにその辺が曖昧みたいで。。
Froyo以降、CODECプラットフォームがStageFrightという
新しいやつになったのが原因。。。みたいなことがよく書かれてました。
質問なのですが、
Froyo以降で、3gpファイルを再生するにはどのようにやればよいのでしょうか?
普通にVideoViewでUrlパスを渡してもダメでした。
何か別の形式に変換しなければいけないのでしょうか?
もしよろしければ教えてください。
323 :
デフォルトの名無しさん :2011/05/19(木) 23:34:58.70
Android SDKで自作のカーネルを動かすことはできないの? 自分で作ったデバドラ(ローダブルモジュール、insmodでhello world表示とか) を組み込んでビルドして、SDKで動くか見たいんだがー よくある、Linuxのキャラクタドライバ作成を、 android SDK上で動作確認できないのかなーと。
ブラウザ上で自作のカーネルを動かすことはできないの?
アンドロイド上で変なもの仕込んだアンドロイド動かして見た目乗っ取れたら面白いかもねw
アンドロー梅田
Gmailみたいにメニューから「その他」を選択すると下からニョって出てくる サブメニューはどうやってやるの?
>>329 普通と思われる方法でやると画面の中央にサブメニューが出ちゃうんだけど・・・
なにかコツがある?
もしやあれはサブメニューじゃなくて、メニューが六個を超えると勝手にそうなるってことなのかな
そうです。個数は文字数とかにもよるようだけど。
333 :
328 :2011/05/20(金) 09:09:53.30
>>328 自己解決しました。超初歩的なところでしたorz
コード内で作成したウィジェットにスタイルを適用するにはどうすればいいのでしょうか?
>>322 3gpは動画コンテナであってコーデックではない。
コンテナとコーデックの両方を意識しないとまともな動作確認はできないだろう。
>>323 やればいいじゃん。できない理由は特にないぞ。
>>324 jslinux
>>334 スタイルはxmlのコンパイル時に適用されるものだ。
たとえばウィジェットの記述でstyleの前後に異なる指定を入れると順序によって結果が変わる。
とはいえデフォルトの属性を適用させたいなら手はいくつかあるがな。
標準のウィジェットのソースコードを読んでみるといい。
336 :
デフォルトの名無しさん :2011/05/20(金) 18:59:35.99
TextViewにHtml#fromHtmlを使うことでリンクを挿入できますが、 この時のURIのスキームの部分を変更することでインテントとして使うことはできないでしょうか よろしくお願いします。
WebViewのキャッシュをファイルに保存することってできますか?
よくListViewの一覧が更新されながら表示されるアプリを 見るんだけど、これはどうやって実現してるんだろう? AsyncTaskで更新ダイアログ出しならがAdapter#addしても 追加が全部終わるまで表示されないし。。
>>339 add する毎にnotifyDataSetChangedを呼べばいいんじゃない。
>>339 非同期でやって、ちゃんと通知していけば更新されるたびに変わるぞ
>>340 >>341 試しにAsyncTask#onPostExecute()の中のforループで、
Adapter#addした後にAdapter#notifyDataSetChangedを
呼んでみたのですが、更新しながらの表示が出来なかったです。
ロジックのどこがおかしいんだろう…。
for抜けるまで更新されないと思ったが。 handlerでメッセージ飛ばすとか工夫しないと。
>>343 onPostExecuteは呼び出し元と同じスレッド(おそらくUIスレッド)だから
そのメソッドを抜けるまで画面は描画されない。
doInBackgroundの中で、
データを1件読み込むたびにpublishProgressを呼んで
onProgressUpdateの中で更新する感じで
WebViewからサーバへリクエストを送信するタイミングでその送信データを参照する ことは可能でしょうか。たとえば送信リクエストのHTTPヘッダの内容です。
ListViewの中で大量の外部の画像を読み込みたくて ListViewのAdapterにWebViewを使ってみましたが、 以下、いくつか問題が発生しており、 ご存知でしたらご教授頂きたく。 1.WebViewが幅・高さを再計算?しようとして 画像の読み込みが終わった後なのに上下に幅が変わる (WebViewがガクガク振動する感じです。) 2.Listの件数が多くなる(100件程度)と重くなる また、WebViewを使わずにTextViewで画像を読み込めないかと 思案していたところ、fromHTMLというものがあったのですが、 IMGタグのborder属性を解釈してくれないため、 画像の周りに青い枠がついてしまいました。 これを何とかする方法はないでしょうか? 自分で1つ見つけたのは、fromHTMLの第2引数に HTML.getImageメソッドだかを定義して、 そのメソッドの中で画像ファイルをdecodeStreamで 読み込んでdrawbleに変換して設定するというものですが、 decodeStreamが異様に遅くて使い物になりませんでした。 やりたいことはListViewの中で大量の外部画像を 表示したいだけなのですが、もっといい方法はないものでしょうか? 以上、よろしくお願い致します。
>>349 WebViewの仕組み知ってりゃそんな設計はしない。
むしろListViewを使わずにWebView1枚の中にリストを表示した方がマシな位。
まずはListViewの各content viewがどう使われるのかを理解した方がいい。 全部のデータが一度に生成される訳じゃなく、画面に出てる部分だけが生成されてる。 画像だけならWebView使わずにAsyncTaskなりを使って読んだほうが 結局楽なんじゃないかと。
>>349 あと、「decodeStreamが異様に遅くて」ってことは
でかい画像をでかいままデコードしようとしてるのか。そりゃ無理だな。
>>350 WebViewの中にリストということはHTMLで
Tableタグを書くと言うことでしょうか?
>>351 ListViewの1行にはImageやらTextやらWebViewやらがあり、
比較的大きいImageViewはASyncTask使って読み込んでます。
WebViewにしている部分は文字と画像がランダムで来るので
逐一ASyncTaskで取るのはやりすぎかなと思ってWebViewにしてました。
ListViewの仕組みについてはデバッグなどで少しは理解したつもりですが、
画面描画の範囲内の行だけをgetViewで生成しようとしているということですよね?
(そして同じ行のgetViewが何回も呼ばれることもある、生成したらおしまいではない)
>>353 一個一個の画像は20x20ぐらいの大きさなのですが、
種類と数が豊富過ぎて、キャッシュも試みたのですが、
同じ画像が選択される分には問題ないのですが、
違う画像が選択されると相当遅くなりまして・・・
>>354 やっぱり本質理解してない気がするなぁ。
getView()で毎回content viewはinflate()してないよね?
なんかどっかのプロジェクトっぽい気がする。RのHだったりして。
>>354 > WebViewの中にリストということはHTMLで
> Tableタグを書くと言うことでしょうか?
せめてULタグとcssでやろうぜ
>>354 WebViewにBitmapの管理を押しつけてるだけじゃ改善しないだろう。
ちゃんとinPurgeable立てたり recycle したりした方がいい。
キャッシュはフラッシュメモリへの保存と、LRU形式のオンメモリキャッシュを併用するべき。
>WebViewにBitmapの管理を押しつけてるだけじゃ改善しないだろう。 ってのは語弊があるか。 ListViewの中に WebViewを入れる形式だと、 スクロールするだけで何度もWebViewにLoadが走ってリソースの管理が追いつかなくなる。 WebViewの中にDOM操作でリストを表示する形式の方がWebViewからみたリソース管理が自然になる。
うだうだ言わんと、コードさらしたれよ。 何レスもWebView 続きで厭きたわ。
HOMEボタンなどを押してアプリケーションがバックグラウンドに移動した際、 もう一度アプリを開くとその続きから再開できますが この時にプログラム側で必要な復帰処理などあるのでしょうか? (PCならデバイスロストしている場合があるのでそこだけ作り直す・・・といったようなもの)
363 :
347 :2011/05/21(土) 16:22:29.45
onProgressUpdate()が呼び出されるタイミングが publishProgress()の順とは限らないらしく、 ListViewの内容に重複する項目が出ていました。 どうやって回避したらよいでしょうか?
順序が異なるだけで内容が重複するとか、もう凄いプログラムなんだろうな。 今回はエスパーでも感知できなさそうだ。
>>362 やることいっぱいあるが
てめーのアプリで害がないならそれで良い
366 :
347 :2011/05/21(土) 16:37:46.88
>>364 publishProgress()の引数に渡してる内容が
変わってしまっているのです。
367 :
347 :2011/05/21(土) 16:38:37.17
訂正です。 publishProgress()の引数に渡してる内容が onProgressUpdate()で参照した時に変わって しまっているのです。
368 :
347 :2011/05/21(土) 16:46:50.42
解決しました…。 onProgressUpdateに渡すオブジェクトをAsyncTaskを継承した クラス内でprivate変数として定義して、それを使い回していたためでした。
>>362 そんなのアプリ次第だろ。
イベントで通知されるからやりたいことやればok
スレッドの停止/開始とか
同期処理とか
ネットワークソケットとか
そういえば音楽ファイル再読み込みしないと
たまにplay時に状態エラーになった気がする
RSSのようなものを作りたいのですが取得先のデータがxml形式ではないため通常どうやってHTMLの値をもってくるのがいいでしょうか? HTMLパーサとかあるの?
>>371 webview スクレイピング でググれ
と思ったけどサーバーを用意してRSSのような物を作って送って上げればいいよ
>>372 ありがと。やりたいことはmixiニュースのRSS専用アプリを作りたいんだけどwebView じゃ無理そうな気がするんだけど。
>>373 ならjavaで書かれたパーサーを用意したらいい
NDKを使用して ARMのみであれば、C言語ライブラリ を呼び出すことができるということでOK? 現状どれくらいARM系cpuが使われてるんですか?
376 :
デフォルトの名無しさん :2011/05/21(土) 22:47:39.95
Android SDKで自作のカーネルを動かすことはできないの? kernelソースダウンロードしてきて、 モジュール作って、ビルドしてできたzImageを emulatorで指定して実行したけど、動かず。。 てか、ローダブルモジュールはzImageに組み込まれないよね? SDKではinsmodってできないのかねー。。。
377 :
デフォルトの名無しさん :2011/05/21(土) 23:37:34.77
そんなホイホイと買えないから
さて全機種買って実機検証でもするか
このスレとして選択の基準はどこら辺だろう。
382 :
デフォルトの名無しさん :2011/05/22(日) 00:56:24.21
選択項目をポップアップウィンドウみたいな感じで出したいのですが、 ポップアップウィンドウみたいに表示されるようにするスタイルってどんなものでしたっけ?
いろいろ調べたのですが分からないので質問させて下さい。 ライブ壁紙で着信や未読メールがあるときに件数を表示したいのですが、 それらの情報を取得するコマンドはどう書けばいいでしょうか?
携帯会社からまない & 中華Android以外の端末がほしい
NDK+OpenGLで組んでいるのですが、 型としてfloat2みたいなものは何も用意されていないのでしょうか? 2次元ベクトルだけでなく3次元や行列も扱うとなると 記載すべきオペレータのオーバーロードが多く面倒orz まぁ、1度組めば滅多に触るところではないですが・・・
float2って何だよ。お前しかわからない単語つかってんじゃねー float 2要素もしくは3、4要素のVectorなら、そんなものない。
OpenCLならfloat2はあるけどね
なんでandroidのエミュレータはあんなに糞重いの? もしかしてエミュもJavaで書いてるのか? あれじゃあ開発できないっしょ。 もっと実用的なものを作れよGoogle
言い訳ですか
エミュが重いなら実機でテストすればいいじゃない
Javaだね。iPhoneはMacだけだが、AndroidはWin/Mac/LinuxもOKよ、という弊害。
>>388 ホントだよな。毎回何分も待つとか、耐えられん。
ここの人はホント我慢強いと思う。
>>393 ここで教えてもらったが何分も待つのは最初の1回だけ
デプロイするたびに5分とか待たされるのに比べれば
いやうちの環境だとデプロイするたびに3分はかかるが。 起動したことを忘れて突然動き出してビビる。
初回起動時だけだろ。
3.0のエミュレータに3Mくらいあるアプリをインストールすると10分くらいかかる
2回目以降も普通に重いっしょ。 画面の解像度が上がるとどんどん酷くなって 3.0で1280x800だとホーム画面まで耐えられないw
2.xまではエミュだけでADP1やMagicくらいのスピード出るから十分開発出来るけど、 3.0のエミュはマジキチ
3.0でストレスを感じない奴はよく訓練されたJava屋
3.0で開発する必要あるの
今から作るならフラグメント使って作った方が後々いいんじゃない? 2.x向けのフラグメントがどうなってるのかとか実は良く知らないけど
今の時点で3.0専用のアプリを作る理由はかなり少ないから 2.xの普通の機種で動作確認が取れたところで 3.0のエミュ使って変な動きしないか確認するくらいじゃないかと
あ、こんなアプリ良いかも! と思って作ろうとしても、マーケット探すとだいたいあって、 二番煎じかと思うとモチベーション下がる。 こんなときどうしてますか?
普通、探す前に完成させる。
違う機能つけたり そこで指摘されてるような部分が問題にならないようにつくる
最後は勉強のためと言い切って完成させて公開する。
モチベーションとかインセンティブなんて、要は考えよう ・見つけたアプリが一番乗りだったとも限らない ・そのアプリが今後もずっとメンテナンスされて行くとも限らない ・今想定しているアプリと同じだったとしても、作ってる内に色々とアイデアが加わって行くもの ・作ったアプリは自分のコードベースとして後々も利用出来る
もしマーケットで見つけちゃっても、目指すベクトルを変えるとか もっと使いやすくするとか、前向きにいけば? 探さなきゃ見つからない程度のappなら、ソコソコの出来でしかないだろうし、 コメント欄に不満とか一杯見つかるんじゃないかな。 二番煎じ、って結局iPhoneのappの二番煎じだし、多分PCの二番煎じ。 いいんじゃない?
リスト表示の際、長いリストを1行に固定して省略したいのですがどのようにしたらいいでしょうか? setLinesで1行に固定はできたのですが、setEllipsize(TruncateAt.END)しても省略されません。 リストはArrayAdapterを継承したAdapterクラスで1行ずつ出力しています。
>>405 逆に聞きたいが既にあるものをわざわざ作る意味って何?
自分なりに作る意味や目的が明確ならばモチベーションは
さがらんと思うけど。自分自身で、既にあれば作る必要がないと
思ってるからモチベーションが下がるんじゃなかろうか。
中にはマーケットで作れそうなの見つけては広告収入目当てでパクる輩もいるからな 俺のアプリも劣化コピーされたし プライドもクソもない連中がいるのもAndroidってこったな
模倣は基本だろ。みんな模倣から入って上達していくんだよ。 ぱくられたぐらいでグダグダ言うな。
>>413 INFOLIFE LLCの悪口は止めてもらえませんか?
ソース丸パクりじゃなきゃいいと思うけどな
419 :
デフォルトの名無しさん :2011/05/22(日) 21:06:40.74
GPSで位置情報を取得しようとすると、 onLocationChanged、onProviderDisabled、onProviderEnabled、onStatusChangedの上にある @Overrideがエラーになってしまいます。 原因がわかる方がいれば教えてください。 お願いします。
420 :
デフォルトの名無しさん :2011/05/22(日) 21:28:28.68
>>418 plus
original source >> 編集cope >> 劣化配布
my source >> 編集cope >> my application >> market
422 :
デフォルトの名無しさん :2011/05/22(日) 22:38:44.01
>>393 毎回何分も待つほどのおバカさんがこのスレになんの用ですか?
エミュなんて1回起動すればいいだけだろw まさか毎回起動させてるのか?www
Q Java製アプリが重いです A 常駐させて下さい
電話がオンフック、オフフックになった事をBroadcastReceiverで 受け取りたいのですが、どのように実装するのがいいでしょうか? Serviceの中でPhoneStateListenerを定義して、 オフフックになったらsendMessageを飛ばすのが普通でしょうか?
>>413 キモオタが作った使いにくいアプリを使いやすくしたら大人気ですよ
なぜかひとつ星付けたアホがいるけどw
粘着キモオタは本当にキモイ
仮想マシン上では動くのですが、vmplayerでandroid-x86-2.2-generic.isoをインストールしましたがアプリが動きません 予期せず停止しましたと出てしまいます 地図アプリです 何が考えられますでしょうか?
armバイナリ使ってるとか。まぁ、違うか。
>>428 空アプリが動くか確認はしていってるのかね?
>>424 起動させっぱなしでも重いんだよ。
特にOpenGLなんか使ってると最悪。
>>432 openGLはグラボのがそのまま使えるから遅くないはずだが?
無いはずだが?と言われても実際メチャクチャ遅いんだよとしか返しようがない。 APIDemoのGLSurfaceViewデモ(6面体が6つ描画されるだけのもの)ですら10fpsも出てないし。
TelephonyManager.CALL_STATE_XXXの状態遷移は 以下の認識合っていますか? ・着信した後にオンフック CALL_STATE_IDLE→CALL_STATE_RINGING→CALL_STATE_IDLE ・アイドル状態で着信して、通話した後にオンフック CALL_STATE_IDLE→CALL_STATE_RINGING→CALL_STATE_OFFHOOK→CALL_STATE_IDLE ・アイドル状態で発信して、通話した後にオンフック CALL_STATE_IDLE→CALL_STATE_OFFHOOK→CALL_STATE_IDLE
俺もOpenGL使った3Dゲーム作ったけどエミュじゃコマ送り状態だわ 実機がやっぱり手っ取り早いね 他環境を試したい時くらいだな、エミュは
>>433 そんな情報(OpenGLはグラボがそのまま使える)初めて聞いたがソースどこよ?
リスト表示の際、長いリストを1行に固定して省略したいのですがどのようにしたらいいでしょうか? setLinesで1行に固定はできたのですが、setEllipsize(TruncateAt.END)しても省略されません。 リストはArrayAdapterを継承したAdapterクラスで1行ずつ出力しています。
440 :
デフォルトの名無しさん :2011/05/23(月) 17:15:24.36
DDMSを使ってエミュレータでGPSのテストを行いたいのですが、 Location Controlsのところが操作できません。 誰かわかる方がいらっしゃったら教えてください、お願いします。
海外でHTC Flyerが発売されましたが、 付属のスタイラスペンはユーザアプリにも使用できるのでしょうか? スタイラスでタッチするのと指でタッチするのは 同じMotionEvent.ACTION_DOWNイベントが発生するのでしょうか?
メニューのアイコンを設定するのに動的な文字列でアイコンを設定したいのですが、 setIconの引数がintとdrawableしかないので、設定することができません。 あらかじめdrawableで適当なアイコンを指定しておいて、 引数を変えるのではなく、処理によって元のアイコンを別な画像で上書きしてしまう。 という方法を考えたのですが、これは明らかに賢くないかと思います。 パスとファイル名を指定して、アイコンをセットするにはどうすればいいでしょうか。
自アプリ(main activity)を再起動させたいんですが簡単な方法はありますか?
スマフォの購入を検討してるんだけど、ちょっと確認させてくれ。 ・android2.4(アイスクリームなんちゃら)ではUSBゲームパッドが使えるが、2.3では使えない ・夏モデル(2.3)から2.4へのアップデートが可能かどうかは現状不明 ・つまりゲームパッド対応のアプリ開発がしたい俺は冬モデルあたりまで待つべき ──ってことでいいんだろうか?
>>443 端末を90度傾ける、とか?
プロセスを一度落として起動し直したいって話、ではないんだよね?(activityってあるし)
>>445 端末どころか2.4自体出てないし、まだなんとも言えんよ
>>445 xoomでも買ってパッド対応以外を開発しながら待てばいい
xoomは標準開発機みたいなものだから新OSが出たらすぐアプデされる
>>446 その90度傾けた時に起きるOnDestroy→OnCreateをプログラム上からやりたいのです。
なんでそんなこと?とうのはとりあえず置いといて頂いて
質問です AndroidアプリからHTTPのPOSTでサーバにデータ(ログ)を送ります その内容をサーバで表示(確認)するようにするにはどうすれば良いでしょうか? フォーマットはjsonです PHPで受信したデータをクライアント側にブラウザ表示するのはやったことあるのですが、 サーバ側で内容を表示する方法が思いつきません・・
折角答えたのにマルチポストかよ・・
サーバ側のプログラムも自分で作るんだったらxmlで返して Android側で表示するプログラムにすればいいのでは
>>453 複数のクライアントアプリのログが見たいんです
じゃあ鯖でログ保存するようにすれば
どのスレで聞いても同じ答えだな
>>455 それをやりたいんですが、サーバサイドが無知なんですよ・・
なんかApache動かしとけば、そこのドメインにPOSTするだけで、
サーバに溜まっていくものなのですか?
458 :
デフォルトの名無しさん :2011/05/24(火) 00:46:03.94
>>443 startActivity(new Intent(this, MainActivity.class));
finish();
とかじゃダメ?
>>450 なんとなく、だけど、FLAG_ACTIVITY_CLEAR_TOPを付けた
Intentを自分自身に向けて投げてみるとか。試した結果を知りたいな。
>>454 はっきり言ってこの手の質問は質問する側が問題を理解してない。
サーバのOSは?画面はどうやって見る?ssh?vnc?
1.dbに書く。dbを読むプログラムを別に書く。
2.サーバ側でもブラウザを立ち上げておく。専用コードをphpで書く。
3.syslogに吐く。tail-fする。
460 :
デフォルトの名無しさん :2011/05/24(火) 00:51:48.27
夏モデルのFeilCa対応のGingerBread端末がNFC APIに対応してるか調べているのですがご存知の方はいませんか?
どんな場所でどんな声でどうしたいって
サーバサイトったって自分でPHPなりプログラムを置くんだろ だから好きなようにすればいいじゃまいか
>>457 なら聞く場所、人が間違ってる。つか、なんか色々間違ってる。
技術者雇うのが一番簡単。無理ならまず学べ。質問はそれからだ。
>>460 してるわけが無い
乗ってるはあくまでFeliCa
シー、サネッティさん
>>451 filegetcontents関数で適当に保存しろ
それをブラウザで表示すりゃいい
儲かりまっか?
あかんがな
>>438 setLinesじゃんくてsingleLineだ
さいでっか〜
CheckBoxやEditTextにセットした値を 他のアクティビティから読みたいときって、 findViewByIdで直接は見れない?
474 :
デフォルトの名無しさん :2011/05/24(火) 10:49:24.68
TextView.setText(Html.fromHtml(htmlText));
のリンクをブラウザの新しいタブで開く方法を教えてください。
<a href="
http://www.google.co.jp ">google</a>
をfromHtmlして、リンクをクリックすると、
裏のブラウザで開いているタブでGoogleが表示されてしまいます。
>>473 見れないかどうかは知らんが、そういうのは他のactivityに遷移するときにBundleで渡しとけ。
バックグラウンドのActivityはいつ破棄されるか分からんし、Activity間で変な依存関係を作るのは良くない。
>>474 android詳しくないけどaタグのターゲットをブランクにするのじゃ駄目?
htmlとかcssの表示ってブラウザによって細部が異なったりしますが、 webviewでhtmlを表示させた時の動作はどのブラウザを基準にすればよいのでしょうか? googleなのでchromeかと思ったのですが、chromeともまた違うようで困っています。
標準ブラウザでいいんじゃね
標準ブラウザもchromeもwebkitだからたいして変わらんよ だがoperaとIEは許さん
うーん、webviewでプルダウンメニューができない。 cssを使ってもjavascriptを使っても同じhtmlでchromeもIEもfirefoxもちゃんと動いてるのに。 しかし、調べても肝心の標準ブラウザで開く方法がintentでURLを発行する方法しか出てこなくてわからない。 ヒントでもいただけませんかね。
>>442 そもそも文字列→アイコンの紐付けはどうするつもりなんだよ
>>476 targetはパースされないみたいなんです
>>481 その紐付けをリソース名で指定できないかなと
´・ω・`
>>483 Resources#getIdentifier()
>>483 1. Resources#getIdentifierでリソース名文字列から整数IDを取得できる。
2. Drawable.createFromXXXでパスやFile、stream、xmlからDrawableを作れる。
3. そもそもHashMapを使えば特定のオブジェクトをキーにしてIDを取り出すことができる。
>>480 スピナーが基本UIとなってる世界の標準機能だからある意味
当然という気はする。最初見たとき変だとは思ったが。
GridViewでWeb上の画像を表示しています。
ttp://lablog.lanche.jp/archives/220 上記サイト様のソースを参考に
getViewの中でASyncTaskを立てて、
doInBackgroundで画像を取得し、
onPostExecuteでセットしているのですが、
当該画面を表示するとGridViewの
画像の取得がばらばらに完了しています。
(完了したところから表示されるが、表示順がランダム)
これを左上から(position順に)順序よく画像を
取得するようにするにはどうしたらいいでしょうか?
489 :
デフォルトの名無しさん :2011/05/25(水) 00:45:49.25
画像の暗黙的インテントを受信した場合、content://media/external/images/media/*** といったURIが渡されますが ファイルのパスで受け取る方法はないでしょうか
490 :
466 :2011/05/25(水) 01:38:25.01
439さん まだ?
粘着こえー
ソース示せは基本
逆にソースが無い事示せばいいのに。
drawableをldpi/mdpi/hdpiに対応したいのですが、 簡単に大きさの異なる画像を作るツールとかありますか? (かなり大量にあるので手動が面倒になって・・・)
>>488 さん
フラグはどんな風に?
複数あるASyncに対してメンバ変数でフラグを持っても
順番までは管理できなくないでしょうか?
496 :
466 :2011/05/25(水) 02:42:17.59
>>491 現状では使い物にならないから淡い期待があるってだけで悪意は無いよ
かまってちゃんならかまってちゃんで別に責める気はない
>>495 どうしても順番にというなら、シングルスレッドでの処理なので遅くなるが、
HandlerThreadを使うのがいいんじゃないかな。
これなら別スレッドでLooperが回って順番に処理してくれる。
>>489 URIを渡してくる側の実装次第
スキーマがcontent://だからContentProvider経由で読み込めってこと
画像がどのアプリからも読み込めるパスにあるとは限らないし、
そもそもファイルとして存在しているとも限らない
>>494 あるかもしれないが面倒なので自分で作った
画像リサイズしてフォルダ作ってばら撒く、他に使い道ない
500 :
デフォルトの名無しさん :2011/05/25(水) 08:49:23.84
>>498 ということはどうしてもファイルとして処理したい画像は
画像を取得してから自アプリの領域に一度ファイルとして保存するのがベストですね。
>>494 自動化するレベルの画像ならそれこそAndroidの拡縮に任せればいいと思うのは変かな?
>>494 リサイズ程度ならImageMagick+バッチファイルでよくね?
こんな感じで
set IM=C:\Program Files\ImageMagick\convert.exe
cd /d "%~dp0"
mkdir drawable-ldpi
mkdir drawable-mdpi
mkdir drawable-hdpi
for %%f in ( *.png ) do (
"%IM%" -geometry 100%% "%%f" "drawable-hdpi\%%f"
"%IM%" -geometry 66.6666%% "%%f" "drawable-mdpi\%%f"
"%IM%" -geometry 50%% "%%f" "drawable-ldpi\%%f"
)
USB接続でSDカードをマウントするとスキャンして修復しますか?の表示が出るようになりました、 しかし、スキャンを選択するとマウントが自動で解除され、もう一度マウントするとまたスキャンを聞かれるというループに陥っています。 スキャンを終わらせて黙らせるか、二度とスキャンのことを表示しないように黙らせるにはどうすればいいでしょうか。
>>504 接続モードをMSCモードをやめてMTPモードにするとか
っつうかここプログラミングスレだからandroid総合質問スレとかで聞いてくれ
>>383 Intentが飛んでくるから、レシーバで受けてservice起こしてContentResolverから詳細を取得して
壁紙側のプロセスになんとかして渡せばOK
どんなIntent ? とか どんなContent ? とかはぐぐれ
>>385 その手のライブラリは既存アプリで作り込まれることの方が多いから、
OSのAPIとして用意したらむしろダメだろ。
>>388 特に3.0以上だと実用にならないよね。
ハードウェアアクセラレーションとか使うエミュも一応存在はするらしいよ
>>393 実機使った方が手っ取り早い。
>>411 maxLines 設定した?
>>419 プロジェクトの設定でJavaのコンパイラ準拠レベルをいじる
>>426 サービス常時起動じゃ重いだろ。
TelephonyManager.ACTION_PHONE_STATE_CHANGED
>>435 そんなの実機で確認するかOSのソース読むしかないよね
>>438 ああそういや1行か。まさかwrap_content でレイアウトしてないよね?
どの幅に合わせて末尾を省略するのかTextViewが判断できるようなレイアウト組んでるよね?
>>440 あれは座標をセットして何かボタンを押すと、イベントがリスナーに飛んでくる。
>>442 試してないけどsetTitle (CharSequence title) や setTitleCondensed (CharSequence title) じゃダメ?
setIconと両方呼べばいいんじゃないのかな
画像の中に何か描画してからDrawableにしたいのか?
Bitmap.createBitmap してcanvasで適当に書いてから BitmapDrawable 書けばいいんじゃないの
>>445 板違い
>>450 本当に何がしたいのか分からない
FLAG_ACTIVITY_REORDER_TO_FRONTつけて自分を起動とか?
>>451 文字列化して適当にログに吐けば?
こんなの定石なんてないだろ
>>473 どのオブジェクトに対して findViewById を呼び出す気だよ?
現在表示されてないActivityが存在することは保証されてないぞ
>>474 WebViewClient.shouldOverrideUrlLoading でイベントを乗っ取って自前処理してからtrueを返す
なんか親切な人キター
1万DL\(^o^)/ 半年かかったお
禁断の韓国語も対応するかな 世界でのシェアは見過ごせない・・・
法則が怖いので俺は逃げるぜ!
515 :
デフォルトの名無しさん :2011/05/25(水) 13:59:49.63
緯度、経度などを取得するには Google Mapにアクセスしないといけないのでしょうか?
516 :
デフォルトの名無しさん :2011/05/25(水) 14:00:46.15
URL url = new URL(sourceUrl); connection = (HttpURLConnection) url.openConnection(); connection.setConnectTimeout(Main.BANNER_TIMEOUT); connection.setReadTimeout(Main.SO_TIMEOUT); connection.setRequestMethod("GET"); connection.connect(); if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { InputStream in = connection.getInputStream(); drawable = Drawable.createFromStream(in, source); in.close(); } Log.v(TAG, "code:"+connection.getResponseCode()); このコードで レスポンスコードが200なのに、 drawableがnullの時があります。 原因としてはどのへんが怪しいでしょうか?
517 :
516 :2011/05/25(水) 14:22:29.80
自己レスです
>>516 のコードはAsyncTaskで動いているのですが、
別のAsyncTaskで同じようにネットからファイルを取得しているときに、
上記の現象が発生するようです。
端末からの同時接続数に制限とかあるのでしょうか?
それともdocomoの3Gのみ同時接続数制限しているとか??
518 :
516 :2011/05/25(水) 14:46:08.80
wifiで試してみたら、
>>516 は発生しませんでした。
docomoで同時接続を行っているアプリの作者さまいましたら、
試していただけるとありがたいです。
同じ9patchの画像をsetBackgroundResourceで指定したときは伸びるんですが、 setButtonDrawableで指定したときは伸びてくれません。 setBackgroundResourceで出来てるので、画像に問題はないはずなのですが、 ラジオボタンの横を広げながらそこに画像を設定したいのですが、どうすればいいでしょうか? 解像度が異なる以上、ボタンと全く同じ大きさの画像を作るわけにはいきませんし。。。
1 つの android.content.res.Resources インスタンスに対して複数のスレッドから同時に getString(int) メソッドを呼び出しても問題ないですか?
>>517 自分のアプリではネットワークダウンロードするスレッド10本くらい軽く動くよ。ドコモ回線で。ちなみにHttpClient使って落としている。ダウンロード先のサーバー応答の制限とか?
androidって欧州じゃ流行ってないのかな 解析みるとそんな気がする まあ英語で十分通じるからだけなのかもしれないが
QuickPicってなんであんなに表示早いんだろう 自分のアプリもあれくらいサクサクにしたい
というか本当に流行ってんのか疑問。 メーカーの販売台数調べのマーケットシェアじゃなく、 ユーザー数ベースが見たいわ。
>>517 ストリームから直接ビットマップにしないで、一旦バッファリングしろ
そもそもはストリームでskip()したときに指定したバイト数だけスキップされる
わけじゃないのに返り値を無視しちゃったとこから生じるバグなんだけど、
APIの意図としてネットワーク上のリソースを読むこむために用意されたものじゃない
という理由で直されないままという話だったはず。解決法は
>>526
>>522 >>526 >>527 バッファリングしたら、うまくいきました!
ありがとうございます!
試しているうちに新しいことを発見。
connection.connect();
で、タイムアウトしても Exception 出ずに、200が返るという不思議な状況を発見・・・
>>525 あと無理だろうが年齢(世代)がしりたい。ゲームアプリのレビュー見ると感想にもならないのがある。スマホって子供の割合結構あるの?
>>515 俺はお前ら”一般人”と違うやり方をしてるのかも知れないが
GPSっていうのを使ってる
>>523 解析見れば”数字は”明らか
”質”は違う
俺に貢いでるのはヨーロッパ人>日本人>アメリカ人
>>529 ゲームなんて年齢問わず”ガキ”がやるもの
ガキの言語がつたないのは世界共通
広告収入って以外とすごいね。4本公開していて、月に6000入ってくる。
>>493 ググった結果キャプチャでもすればいいのかい?
そんなことするくらいなら、ベンチマーク結果でも貼ればいいのに。
ExpandableListViewの展開アイコンはどのように変更させるのでしょうか? 分かる方よろしくお願いします。
>>529 天気予報アプリで「予報が当たらない」とか意味がわからない
君たちはいつもそうだね、わけがわからないよ。
>>537 あるね。
小一時間って感じだが、たくさん居すぎだw
すんません、小さい画面用に作ったアクティビティを 大きいサイズの画面に表示させたときに、 右下が余るように表示されてしまうのですが、 異なる解像度でも画面一杯に表示する方法ってどうやるのですか。
541 :
デフォルトの名無しさん :2011/05/26(木) 11:35:22.33
絶対配置をやめて相対配置にする
え!?レイアウトの頭のLinearLayoutを解像度に合わせて最大化する方法ってないの?
レイアウトのクラス自体、自分で作れるんだから、 好きなように配置するようにすればいいだけの話。
いや、配置はいいんだけど、 LinearLayoutは最大化してくれない? というかそんなプロパティとかマニフェスト設定とか無い?
うるせえな
自分でコードを書けば数分で書ける程度の処理を、 ここでグダグダやる意味が分からない。
>>545 何が聞きたいのかわからん。
サイズをfill_parentにすれば普通に最大化されると思うけど?
>>548 そうだと思うんだけどできない。
Android-2.2でエミュレータがGALAXYなんだけど関係ある?
>>549 linear_layoutは拡大されてるだろ、下が空いてるだけで
Androidやり始めたばかりの初心者で、どう手を付けていいかわからず
サンプルを弄ってるけど詰まった_|\○_
開発環境:Android2.2
実機使ってカメラの制御を、日経ソフトウェアの雑誌読みながら練習してるんだけど
カメラの撮影が上手く分からない。
ベース
日経:
http://itpro.nikkeibp.co.jp/article/MAG/20101122/354400/?ST=nsw#201103 特集2
カメラ撮影:
http://boco.hp3200.com/beginner/camera01-1.html マニュフェストの違いとしては日経がFrameLayoutで、カメラの方がLinearLayout
この違いを調べてみたら、Linearだとレイヤー合成出来ない見たいだからFrameの方が良いのでそのまま
で、カメラ撮影を参考にして追加してみたんだが、タップしても撮影できぬ…
MySurfaceHolderCallbackに、extends SurfaceViewと implements部分に , PictureCallback
を追加して、SurfaceViewをextendsした分そのクラス内に、コンストラクタ作らないといけないようだから
public MySurfaceHolderCallback(Context context) {
super(context);
}
追加、その後にonPictureTakenとonTouchEvent関数を追加したんだが、タップ反応しない
main部分で、setTypeで、SURFACE_TYPE_PUSH_BUFFERS);宣言してるから、さっき追加したコンストラクタに
追加擦る必要もなさそうだとおもうし、Event関数もあるんだが動かない
何ででしょう?('・ω・`)
XMLメニューが画面の真ん中あたりに表示されるっておかしいよな。 ごめん、もう少し調べてみる。
>>549 取りあえず状況をエスパーしてみるけど、多分LineaLayoutは拡大されてるけどその子viewが拡大されてないんだろ。
子viewのlayout_XXX系のパラメータを見直してみろ。
もしかしたらlayout_weightに0でない適当な数値を設定してみれば解決の糸口が見えるかもな。
AppWidgetで取得したレイアウトに、ダウンロードしたフォントを適用したいのだけど 何か方法ないですかね? setTypefaceの様に指定出来たら良いのですが それっぽいメソッドがRemoteViewsにない・・・
ダメポ…LayerLayoutみたいな見た目でつくろうと思って
import android.widget.FrameLayout;
FrameLayout frameLayout = new FrameLayout(this);
って宣言したら、デバッグ時にEclipseのソースが見つかりません画面に飛ばされる
main.xmlは
<FrameLayout xmlns:android="
http://schemas.android.com/apk/res/android "
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<SurfaceView
カメラのやつ/>
</FrameLayout>
にかえてあるのに(´ω`)…
デバッグモードで、タップ操作が受け付けているかどうかチェックしてみた。 結果的にはMySurfaceHolderCallbackには来ていなかった。 mainに設置してみたら、デバッグモードで止まったのを確認した。 ということはここから動作を飛ばせばいいのではと camera変数はMySurfaceHolderCallbackにあるし、mainに持ってきたくないから MySurfaceHolderCallbackの関数呼び出せばいいんじゃ?と思って MySurfaceHolderCallbackのイベント処理の中の処理を public void cameraSnap() { MySurfaceHolderCallback a; a = new MySurfaceHolderCallback(null);
public void cameraSnap() { camera.takePicture(null,null,this); } に変更して、mainに MySurfaceHolderCallback a; a = new MySurfaceHolderCallback(null); を追加 mainの中に関数として public boolean onTouchEvent(MotionEvent me) { if(タッチされたら){ a.cameraSnap(); } とかやってみたんだけど、いざ実機でハイターッチしてみたら Eclipseでソースが存在しません画面に飛ばされる(´・ω・`) 助けてエロい人…
>>539 世の中には地震速報アプリに対して
「ガラケーより早い!、正確!」
って感動してるやつもいるからな…
>>558 最新は2.2
honeycombはソースが公開されてないからまだビルド出来ない
>3.0のエミュレータに3Mくらいあるアプリをインストールすると10分くらいかかる >3.0のエミュはマジキチ >3.0でストレスを感じない奴はよく訓練されたJava屋 >特にOpenGLなんか使ってると最悪。 openGLはグラボのがそのまま使えるから遅くないはずだが? >そんな情報(OpenGLはグラボがそのまま使える)初めて聞いたがソースどこよ? 少しはクグレ。カスが! >437ではないが教えてほしい android-x86を入れれ >3.0が見当たらないのでURL張ってもらえない? 最新は2.2 honeycombはソースが公開されてないからまだビルド出来ない 話が通じない・・・
r ‐、 | ○ | r‐‐、 _,;ト - イ、 ∧l☆│∧ 良い子の諸君! (⌒` ⌒ヽ /,、,,ト.-イ/,、 l |ヽ ~~⌒γ⌒) r'⌒ `!´ `⌒) 逃げろ │ ヽー―'^ー-' ( ⌒γ⌒~~ /| │ 〉 |│ |`ー^ー― r' | │ /───| | |/ | l ト、 | | irー-、 ー ,} | / i | / `X´ ヽ / 入 |
>>563 > 424 名前:デフォルトの名無しさん[sage] 投稿日:2011/05/22(日) 23:45:13.17
> エミュなんて1回起動すればいいだけだろw
> まさか毎回起動させてるのか?www
レスアンカー無しの単発クンを相手にするのは
時間の無駄って事がよく分かりました。
流れがわからんけど、 android x86じゃなくて qemuでハードウエアアクセラレーターを有効にするって話なんじゃないのかな。
はにかむ!
バカ同士の会話は成立しない どっちもバカだから相手をバカにして終わり
ListView内のTextViewのフォントサイズを17sp以下にすると ListViewをタップしたときにフォーカスされ色が変わる範囲が1つのリスト幅を超えてしまいます これを超えないようにすることはできますか?
>>569 多分だけど、9patchが17ピクセルなんじゃね?元の画像を改変したらいけそうに思う。
>>540 なんかみんな読解力ないな。
>小さい画面用に作ったアクティビティ
ってことはTheme.Dialogとかを使ってるだろ。それ指定するとfillうんちゃら使っても無理。
それを諦めるか、適当なTextViewとかのサイズをむちゃくちゃ大きくするという手がある。
自分も正しい解を知りたいけど。
昔からJavaはどうも好きになれんw 真面目にエクスペリエンスが 7.5くらいでるCPUでエミュレータの あの遅さは何なんだろう。 ネイティブ開発環境がもっと充実したらなぁ。 エミュレータもネイティブ上で動けば早いだろうに。。
あれってQEMUなの
575 :
569 :2011/05/27(金) 02:12:25.59
>>570 ありがとうございます
画像のサイズでした
eclipseからAVDを起動して、MenuボタンやBackボタンにマウスをポイントすると、「問題が 発生したためemulator.exe を終了します。ご不便を…」でemulator.exeが終了してしまいます。 原因や確認項目などわかる方教えていただけないでしょうか? XP SP3 32bit + Helios(3.6.2)です。 なおポイントするとボタン色が青く変わりますが、青くなる前に終了しています カメラ(最上最左)ボタンはボタン色が青く変わらないためかポイントしても終了しないです 一方キーボード関係(下半分)のボタンはポイントしても終了せずボタン色が青く変わります 再Installは何回かしたので、クリーンInstall前に何かアタリをつけておきたいのですが…
WebView使ったアプリを作っていますが、Android2.1でハマっています…。 Android2.1で、上下に入力フィールドがある場合、上部のフィールドからNextボタンタップで、下部のフィールドにフォーカスが当てた場合、入力が上部になってしまうのですが、何か回避策はありますでしょうか?
FrameLayoutでつくるとカメラのイベント処理って LinearLayoutと変わるの? 昨日から全然進歩しないお… 親クラスでしか、タッチのイベント処理行ってくれないんだけど… 子クラスでタッチイベント処理やるにはどうしたらいいの?
>>554 ApWidgetを実際に描画してるのはホームアプリなので、
ホーム以外のアプリが作れるAppWidgetではできることがかなり限られる。
>>569 そんな狭いレイアウト作るんじゃないw 機種によってはまともにタッチできないぞ
>>572 エミュが遅いのはjavaレイヤーのせいじゃないぞ。GPUやサウンドのエミュが重いんだよ
>>577 Nextボタンって何ですか
>>579 タッチイベントだけの問題ならカメラは関係ないよね
フレームレイアウトでViewの重ね合わせをする場合、上のレイヤーでイベントが取られてて下のレイヤーに届かないことはレイアウト次第ではありえる。
あとSurfaceViewを複数重ね合わせるのは特定環境で問題起こす。
SurfaceView の上に通常のViewを重ねるので問題になったことはいまのところうちでは発生してないな
>>580 キーボードの確定ボタンの箇所です。
機種によっては、「Next」と表示されます。
ちなみに、WebViewからテキストフィールドの確定イベントをフックすることは可能でしょうか?
>>576 最近似たようなこと起こったな。
SDカードのサイズを上げてみたり、RAMサイズを上げてみたり
ウイルスバスターの例外にemulator.exeを追加してみたりしてたら
いつの間にか直ったけど。
>>582 いっそのことカメラ部分とメイン部分融合させたらいいんじゃね?
って思って、やってcallbackをちょちょいといじったら撮影できるようになった\(^o^)/
うつくしないけど・・・
カメラも撮影出来たんで、カメラ撮影した奴に画像を合成したいと思ってるんだ。 結果的には画像合成は上手くいくんだが撮影→プレビュー画面停止から戻ってこないんだ プログラム Bitmap bmp = BitmapFactory.decodeByteArray(data, 0, data.length, null); //カメラ画像 Bitmap lyBmp = BitmapFactory.decodeResource(getResources(), R.drawable.image); //合成したい画像 Bitmap offBitmap = Bitmap.createBitmap(bmp.getWidth(),bmp.getHeight(), //合成後の画像保存用、空ファイル Bitmap.Config.ALPHA_8.ARGB_4444); //画素セット Canvas offScreen = new Canvas(offBitmap); //作成 offScreen.drawBitmap(bmp,null,new Rect(0, 0, bmp.getWidth(), bmp.getHeight()), null); //空bmpにカメラ画像セット offScreen.drawBitmap(lyBmp,null,new Rect(0, 0, bmp.getWidth(), bmp.getHeight()), null);//カメラ画像セットした画像に、合成 MediaStore.Images.Media.insertImage(getContentResolver(),offBitmap,"",null); //保存、名前なし って感じで動いてると思うんだけど 復帰してくれん… ちなみに画像は一応保存されてはいる…なんででしょう?(´・ω・`)? あとBitmap.Configの部分は ALPHA_8 のみ=フリーズはしないが、保存されない ARGB_4444 = 変わらず ARGB_8888 = フリーズするし、保存もされない
>>585 Bitmap.compressでFileOutputStreamに書き込め
>>586 レスありがとう、fileoutputstreamか…これって保存先自分で指定しないと駄目なんですよね?
ってことで・・
drawBitmapの後に
String path=Environment.getExternalStorageDirectory()+"/test.jpg"; //ギャラリーに追加
FileOutputStream out = new FileOutputStream(path); //取得
ByteArrayOutputStream bos = new ByteArrayOutputStream(); //準備
offBitmap.compress(CompressFormat.JPEG, 100, bos); //bitmap→Byte[]へ
out.write(bos.toByteArray()); //書き込み
out.close(); //終了
camera.startPreview();
見事に
catch(Exeption e)
に投げ飛ばされたorz
588 :
554 :2011/05/27(金) 18:00:21.30
>>580 まさか暫く経って回答してくれてる人がいるとは・・・
ありがとうございます
やっぱりAppWidgetでは無理かぁ
久々にfindbugs使おうと思ったんだけど実行するとエラーが出る エラーの原因がandroidoプロジェクトだからかの切り分けも面倒だし、 更新が止まってるから今後使い続けるのもどうかと思ったんですが eclipseで使えるお勧めのandroid(というかjavaの)コードチェックツールはありますか?
SQLiteで日時情報を頻繁にinsertしていくと、当然内部メモリを 圧迫していくんだけど、ユーザに削除あるいは圧縮させるのは 作りとしてマズいかな?
>>591 1日あたりどれくらい溜まる物なのかによる。
1日100Kとか使うなら自動削除が必要だとユーザの感覚では思う。
1日1Kとかなら削除機能を用意するだけでいいんじゃないか?
>>592 知ってて聞いてる。
>>593 統計データとして全部取っておきたいと思えるユーザが
居なければその方向でいきたいですね。
>>594 1日〜10KBくらいでしょうか。たまに手動削除でいいかも
しれないです。
1つのアプリに (例えば) Lite と Pro との2つのバージョンを作って (マーケット登録は完成したら行うとして、とりあえず野良で) 公開するには、どうすればよいでしょうか。 実際の機能はコードの一部を変更するだけですが、"何かが同じままなのか" 上書きされてしまいます。
>>596 ならば、x日保存するって設定つくるかな
>>598 なるほど。そうするとかなり楽出来ますね。。考えてみます。
>>599 ありがとうございます! なんとなく変更方法がわかりそうです!
>>601 今だったら機能を制限しててアプリ内課金で解除するのも楽だぞ
xmlをGraphical Layoutで編集してる時スクロールバーを動かすこと出来ないの?
>>582 やっぱり上のレイヤーにカスタムビューを全面に置いてたか。
カスタムビューでタッチイベントを奪ってしまったら下のビューには届かんね。まあビューの実装次第だけど。
>>587 catch(Throwable ex){ ex.printStackTrace() } …くらい書いてるよな?
>>591 別にやろうと思えばSDカード上にSQLiteデータベースを作ることだってできるよ。
まあ重くなるしどっかで整理した方がいいとは思う。
>>602 アプリ内課金はマーケットアプリの特定バージョンが死滅してからやったほうが幸せだぞ。
バグがあって必要な通知が来ない時があるからな。
>>603 Graphical Layout ってどんなViewGroup ?
アプリに広告つけたいんだけど、どこが一番儲かるんだろうか。 経験者の意見がききたい。 スレ違いだったらごめん。
> エミュが遅いのはjavaレイヤーのせいじゃないぞ。GPUやサウンドのエミュが重いんだよ ダウト。全部遅いよ。
>>607 日本国内ならadmakerがよいと思う。クリック単価平均9円位だし。
海外向けのアプリだとadmobがおすすめ。
>>607 俺もAdMakerお勧めする。
頑張れば一日当たり10000円越えもいける。
>>609 ありがとうございます
良いのはその2社なのね
インプレッション広告とかいうの出してるトラフィクゲートってどうなの?
クリック型とどっちがいいんだろ
>>610 ちょっとadmaker登録してくるわ
ちなみにアプリのDL数とかいくつくらいなの?
>>612 ダウンロード数は40000くらいかな。
大事なのはダウンロード数じゃなくてインプレッション数ね。定期的に使われるツール系とかゲームアプリは収益あがりやすい。
自分は今ツール系アプリ作ってて、もしかしたら国内より海外でDL増えるかも、 なんてモノなんだけど、admobがいいのかなぁ。 blogとか見てるとadmobが出ないときにadmakerとかって方法が出てたりするけど、 どうなの?日本語の時だけadmakerとかにするのがいいのかな。
嘘を嘘とw 支払いの面倒さとか教えないのね
広告はつけずに公開して信者を増やすんだ。 時期をみて付けるのが賢いやり方。 そもそもユーザー居なかったら、悩むの馬鹿みたいじゃないか。
618 :
576 :2011/05/28(土) 03:22:49.84
>>583 レスありがとう、大変遅くなってスマンです
未解決だけど手がかりは見つけました。プロセス「ctfmon.exe」を停止した状態で
AVDを開始するとemulator.exe が終了することはなくなりました。これ(ctfmon)が
原因ではなくて、他の原因部分(emu終了)に到達せずにすむだけの気がしますが、
多少取っ掛かりし易くなりました。どうもでした!
>>617 それもちょっと考えたんだが、機能追加とかの余地があまりないアプリだしなぁ。
開発費回収のスキームは悩むところだ。
まぁ、取らぬ狸のウンたらだけどな。
>>611 > クリック型とどっちがいいんだろ
長時間操作しているようなアプリだと、インプレッション型の方が有利かもね。
iPhoneアプリによくありますが、画面上部に置いてあるメニューバーのようなものはAndroidアプリでも設置することは可能でしょうか。labelで作ってあって、その上に「送信」や「保存」などのボタンが乗っかってあるような部分のことです。よろしくお願いします。
>>621 できない事もない。
だけど画面上部に置くのは操作しにくいのでお勧めしない。
ActionBarって言って、 Googleも使うことを勧めてるよ
>>549 じゃあそのparentが拡大されない設定になってんだろ
>>608 いや、Javaのレイヤは別に遅くないが…?
EclipseのUIエディタでスクロールバーを配置したときスクロールさせるにはどうすればいいですか?
D2C(仕事PCなので拡張ボード系一切無し) Ubuntu 9.04(32bit) / Eclipse 3.5 普通にエミュレータ起動に2分も掛からん。
631 :
デフォルトの名無しさん :2011/05/28(土) 14:36:53.57
下記のように○○中は処理をしないという方法でタッチダウン処理を 無効にしていますが、この状態で何度もタッチダウンを繰り返すと touchDownメソッド自体が呼ばれなくなってしまっています(ログを出力させて確認) このような状態を回避する方法などあればご教示ください。 private void touchDown(float x, float y) { if(○○flg) { // ○○中は処理しない。 return; }
>>608 ベンチとって比較してくれよ。
そもそもNDK使う理由って
- 既存のCコードを使いたい
- GCを避けたい
の2つであって、単にJavaコードをCで書きなおせばすごく速くなるって訳ではない。
今はJITも並行GCもあるからな。
634 :
631 :2011/05/28(土) 14:58:57.75
自己解決しました。自分のコードの問題でした。
>>633 これもダウト。
NDKには他にも用途がある。
>>625 そうなのか〜。勉強になるスレだ。サンクスこ。
>>627 基本的にはパッケージ名が同じものが同じアプリとみなされる
署名は作った人が誰かを示すだけで、署名が同じ≠同じアプリ
同じ人がいろんなアプリを作ってた場合、署名はすべて同じでも良い
逆に、SharedUID使う場合は署名が同じじゃないといけない
パッケージ名が同じで、署名が異なるアプリの場合、
「署名が違うからインストール出来ねえよ」って言われるから、上書きされちゃうことは無い
他人に同じパッケージ名使われて勝手に上書きされてたら困るよね
GridViewで画像を並べて表示しています。 タップされたらフェードアウトしつつ画面全体に向かって拡大するような アニメーションを作ったのですが □□□ □小□ □□□ が □□□ □大□ □□□ と、1マス(1Adapter)の中で画像だけが拡大されてしまいます。 Adapterから飛び出る感じで、画面幅一杯まで拡大するような アニーメーションにするにはどうしたらいいでしょうか? フェードアウトにはAlphaAnimation 拡大にはScaleAnimeationを使って、 繰り返し回数は1、徐々に拡大するように時間は3秒にしています。
インテント発行でCookieを渡したいのですが、うまくいきません Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); CookieSyncManager 使っても、ブラウザ側で sync してくれるとは限らないですし、 Intent.putExtra で渡せるような情報も余り無いですし、 なにか方法はないでしょうか?
>>638 直接の解決方法じゃないが、レイアウト外の
imageviewに貼り付けるとかじゃダメかね。
>>621 タイトルバーを消して、タイトルバーもどきのレイアウトを一番上に設定すればいいのでは?
>>641 Twitterの公式クライアントはその方式だね
>>640 画面全体がほぼGridViewなのですが、
GridViewとは別にImageViewを定義するということでしょうか?
たとえば左下の画像をタップされたら、左下を中心として
右上方向に拡大しつつフェードアウト、というアニメーションを
目指しているので、GridViewの外側でFrameLayoutを定義しておいて
FrameLayoutにImageViewを足しても旨いこと位置を制御できなくて・・・
(GridViewは上下にスクロール可能なので画像が中途半端な位置にあったり)
マカってホント情報弱者だな。
>>643 ※レイアウト外にアニメーションがはみ出せないって前提で。
位置制御が難しい(きちんとやればできるけど)なら
最初からメインレイアウトをrelativeにしておき、
画面サイズを取得して、1画像の縦・横サイズから表示する数
を計算(横:480px/80px=6画像とか)し、
addViewでimageviewを追加してけば良い。
縦・横可変ならScrollView使うと良い。
それならメインレイアウト内をめいっぱい使って
アニメーションするはず。
ただ、アニメーションがScrollViewの外に飛び出すかは
忘れた(bringToFront?でいけたっけか?)。
>>645 いまはGridViewの縦幅を画像依存にしていて、
画像の高さが不貞なのでちょっと難しいですが、
GridViewの行幅を固定にして試してみます。
>※レイアウト外にアニメーションがはみ出せないって前提で。
まさにこれですよね、アニメーションでレイアウトをはみ出して、
拡大するほうほうがあれば解決するのですが・・・
>>639 何でIntentでラウザフックするのか不明だけど
普通はwebview/wevbiewClientとか使うと思うけどな。
R.java内のintの値を文字列から取得するとは出来ますか? findViewById(R.id.hoge)をfindViewById("hoge")のようにして使いたいです
取得も何も中身ちゃんとしてんのかと
>>647 レスありがとございます。
WebViewで表示しているリンクをクリックすると、
ブラウザが起動する感じの物を作っているのですが、
Cookieを渡せないので、困っています。
>>639 の処理は
WebViewClientのshouldOverrideUrlLoading(WebView view, final String url)内での処理なのですが、
こんな風にしてCookieを渡せないものかなと・・・
>>648 できるよ。
getIdentifier(String name, String defType, String defPackage)
fragment だった。 RFC 3986 の URI の fragment のことな。
>>652 ウワァァァン
読み落としていました;;
CookieSyncManagerはスレッド間でCookieを共有できるだけだったんですね・・・
URLに細工の方向でいじってみます。
ありがとうございました。
>>655 反応、ってどんなことを意図していますか?
私にはちゃんとActivityが再生成されて方向に合わせたレイアウトが行われてるように見えますが。
>>655 何を言いたいのかわからんが
しょせんエミュレーターだからどうでもいい
実機でちゃんと動いてるんだろ?
>>656 わかりにくくてすみません。
3枚目の画像が1枚目と同じになることを期待していたのですが
横置き(2枚目)のままの表示になってしまうという意味で書きました。
ボタンの反応はあります。
>>657 すみませんまだ実機で試していません。
ちょっとやってみます。
>>658 回転できる方向がいくつあるかは端末によって違うよ。
180度や270度はできたりできなかったりする。
2.3のエミュレータがバグってる、諦めろ
661 :
655 :2011/05/29(日) 11:27:06.34
実機では正常に動作したので、 エミュレータでうまくいかないのは仕様ということにします。 ありがとうございました。
>>660 すいません入れ違いになりました。
バグなんですね。あきらめが付きました。
ありがとうございます。
shellコマンドの一覧ってどっかにない? 使えないオプションが多いようなんだよな
てか、「android端末のshellではどのコマンドが使えます」なんて決まりは一切無いので もし自作アプリでコマンドを叩きたいならそのコマンドをassets に入れといて、 起動時にファイルにコピーする感じでやらないといけないはずだ
そこらへん融通利くようにしてほしいよね
busyboxがすでに入ってるからシェルコマンドのオプションが少ないんだと思うぞ
レーダーチャートを作りたいんだけどどうやったらいいかな?
チャートの図を方程式化して 四角の左上の点から順に範囲内なら黒、そとなら白をポイントしていく
レイトレーシングを思い出すな。
Pathで多角形描いて Canvas.drawPath(Path path, Paint paint)でいけるんじゃない?
Google Chart API使って…
XmlSynchronizeとXmlPullParser使ってみたけど値がうまく取得できない ; ファイルのパスって./ファイル名で通るよね?
>>676 問題はそのアプリに取ってのカレントディレクトリはどこか、って話だな。
>>676 File file =new File(context.getFilesDir(),"hoge.xml") くらい書けよ。
今試しに new File(".").getAbsolutePath() 見てみたら "/." つまりルート。
レスくれた方サンクス! 家帰ったら再度チャレンジしてみます
>>669 既に入ってる、はたいていの端末においてfalseだな。
メーカー出荷状態ではごく限られたコマンドしか使えないし、どれが使えるという保証もない。
Titanium Backup もbusyboxを後から入れられるように配慮されてる。
同一Activityを起動する方法わかる人いますか? 具体的にはActivityAからActivityAを起動したい。 パラメータ違いで元のActivityとは機能は別モノになるのだけれど、 同じActivityだと起動してくれないっぽい。 Activityは同じだけど、機能は別モノなので できれば新しいActivityに遷移したいのだけど・・・
>>682 >同じActivityだと起動してくれない
なんかlaunchMode いじってないか?普通はそんな制限ないぞ
>>683 ありがとう!
launchMode が何故か singleTop になってました。
launchMode なんて気にした事ないから変えた覚えはないのだけどなぁ。
>>681 そなのか。実機じゃ/bin等にアクセス権がないんで確認してないが
Froyoのx86エミュ版はほとんどのコマンド(ls等数十個ぐらい)がbusyboxへのリンクになってたんで
そういうもんだと思ってたわ
root取ってない実機のshellでsqlite3を実行するにはどうしたらいい? /sdcard/hoge/にsqliteのサイトから落としたlinux版を置いて実行したら パミッションではじかれるとこまではやってみた
AndroidManifest.xml の <activity> に screenOrientation="landscape" を指定すると アプリ起動時のウィンドウが拡大するようなアニメーションがなくなるのはどうしてでしょうか? 画面の方向が固定でない標準アプリを端末を横に倒した状態で起動した時もそのようになります。 試した機種は 003sh です。
Androidアプリから各種サイトへアカウント情報を入力してログインする、というのはwebkitを用いれば出来るのでしょうか。 それとも外部APIを入れるべきなのでしょうか。初心者質問ですみませんが、よろしくお願いします。
>>623 ありがとうございます!
ActionBarというものがあるものを初めて知りました。
Androidのバージョン3.0から使えるようになったんですね。
>>641 いろいろ試してみましたが、画面をスクロールさせても、この部分だけは動かないようにするにはどうしたら良いかわかりませんでした。
レスありがとうございました。
>>691 ScrollLayoutの外に置けば良いだけじゃ・・・?
>>686 /data/local/tmp に置いて chmod 755 とかする。
>>686 sqlite3コマンドに実行可能パーミッションを設定していない、
もしくは開こうとしてるファイルのパーミッションがアプリのuidからしか読めないようになっているか。
後者なら非rootでは無理。
>>689 loadUrl に "javascript:...." で出来るなら出来る
695 :
デフォルトの名無しさん :2011/05/30(月) 21:56:07.64
dropad欲しい
質問ですが、圧力センサーの使い方の例が書いてあるサイトとかありますか? 日本語サイトでは見つけれなかった。
697 :
デフォルトの名無しさん :2011/05/30(月) 23:38:21.59
インテントについて質問です。 intent.SENDでリクエストがURLの場合だけ反応するようにするには manifest.xmlにどのように書けばいいのでしょうか。 スキームに"http"を指定してみましたができませんでした。 よろしくお願いします。
SENDでURL送れるかどうかは確認してないけど mimeType="*/*"を追加してみるとか
699 :
デフォルトの名無しさん :2011/05/31(火) 00:32:17.77
SENDでURL送るというのは ブラウザやYoutubeからページを共有したときに送られるURLのことです。 MIMEはtext/plainでした。 そのテキストがURL形式なら立候補?したいと思ってます。
>>697 IntentFilterはIntent#setDataされたurlに適用される。
きみが言ってるのがIntent.ACTION_SENDのことな
ら、urlは単にテキストとしてputExtraされているので、IntentFilterは効かず、他にもフィルターする方法はない。
ちなみにmime-typeはtext/plainだから普通のテキストと見分けはつかない。
701 :
デフォルトの名無しさん :2011/05/31(火) 00:59:19.17
わかりました。 アプリ内で判断してURLじゃなかったらごめんなさいトーストすることにします。
外人さんのコメントはうれしいんだが スペルミスなのかネットの短縮用語なのかスラングなのか 意味がまったくわからないのがあって困ったw その単語でぐぐってもでてこないしイメージ検索だとおっちゃんの顔とかだし 何かの要望なのはわかるんだが
>>696 センサーだから大差ない
ところで圧力センサー入りの端末ってどれ?
>>702 ぐぐって出てこないのはタイプミスだからどうしようもない
ギリシャ人はギリシャ語をアルファベットに置き換えて書くから翻訳するのも一苦労、わざわざツール作った
結局星の数だけ見ておけばいい
>>704 感圧パネルでお絵かきソフトをとか、夢見ている人じゃない?
ああタッチパネルで筆圧2048階調を取得しようとしてるのかw lolとかのネットスラングじゃないの? ドイツ語とかでもウムラウト無し表記は有る。
いやいやn1とかでも取れるからね 信用できる値なのかはしらんが
>>604 一応付けてる
わかんねー、下のように改変したらシャッターON→フリーしてしまう・・・でも保存はされる…
@SuppressWarnings("static-access")
public void onPictureTaken(byte[] data, Camera c) {
try {
Bitmap bmp = BitmapFactory.decodeByteArray(data, 0, data.length, null);
Bitmap lyBmp = BitmapFactory.decodeResource(getResources(), R.drawable.image);
Bitmap offBitmap = Bitmap.createBitmap(
bmp.getWidth(), //カメラ画像
bmp.getHeight(),//合成したいレイヤー画像
Bitmap.Config.ALPHA_8.ARGB_4444);
long dateTaken = System.currentTimeMillis(); //時間
String name = createName(dateTaken) + ".jpg";//時間.jpgで保存
Canvas offScreen = new Canvas(offBitmap); //合成用空画像 (カメラ+レイヤー)
//空画像にカメラ画像を追加
offScreen.drawBitmap(bmp,null,new Rect(0, 0, bmp.getWidth(), bmp.getHeight()), null);
//空画像(カメラ画像有り)にレイヤー画像追加
offScreen.drawBitmap(lyBmp,null,new Rect(0, 0, lyBmp.getWidth(), lyBmp.getHeight()), null);
//ギャラリーに追加とともに保存
MediaStore.Images.Media.insertImage(getContentResolver(),offBitmap,name,null);
//カメラ再開
camera.startPreview();
} catch(Exception e) { e.printStackTrace(); } catch(Throwable ex) { ex.printStackTrace(); } } private String createName(long dateTaken) { // TODO 自動生成されたメソッド・スタブ return DateFormat.format("yyyy-MM-dd_kk.mm.ss", dateTaken).toString(); } 助けてエロい人… ちなみにFileOutputStreamも試してみたんだが、ダメポ・・・
FileOutPutStreamだと MediaStoreの部分を消して //ギャラリー String path = Environment.getExternalStorageDirectory() + name; //ギャラリー登録用 FileOutputStream out = new FileOutputStream(path); ByteArrayOutputStream bos = new ByteArrayOutputStream(); //bitmap→byte変換用 //書き込み offBitmap.compress(CompressFormat.JPEG, 100, bos); //byteへ変換 out.write(bos.toByteArray()); //書き込み out.close(); にしてる。 デバッグモードで、変数の中を見たら pathが/mnt/sdcard2011-日付.jpgになっていたから createNameを/yyyy-と、/追加してもやはり駄目 ていうかこっちの場合ギャラリーにすら出てこない・・・ ブレークポイントを設定してみたんだが、 前者のMediaStoreの部分だと、MediaStoreの部分より先にブレークポイント設定しても引っかからない MediaStore部分で止まってるぽいんだが、catchにもいかないし、Eclipseの画面が切り替わらない 後者のFileOutputStreamの場合、FileOutPutStream = new FileOutputStream(path);の部分で止まっているみたいで、 ByteArrayOutputStream bosに設定してもブレークポイント引っかからないし、やはりcatchにもいかない… orz
>>604 すまん\(^o^)/ catch Throwbleは付いてるんじゃなくて、付けた
元々はException eしかつけてなかった
すまん・・確認不足だった Exception eを取り払って、もう一度デバッグモードで>>FileOutputの方を見てみたんだが、普通にcatchいっていた exの中身をみると、fileNotFoundExceptionだった 何でFileNotなんだろう… detailMessage "/mnt/sdcard/2011-05-31_16.21.48.jpg (Permission denied)" 変数の中見てみるとこんな感じなのがあったんだが、きちんと指定されてると思うんだが…
まじで連投スマン… MediaStoreの方を見たら out of memory エラーだったorz、画像合成するだけでout of memoryになるものなのか? cause OutOfMemoryError detailMessage "bitmap size exceeds VM budget" out of memoryエラー対策でググッてみるか…
>>712 (Permission denied)
Permission deniedワロタ
>>714 ぐぐってみたら、アクセス権限ないおって奴か…
マニュフェストには一応
<uses-feature android:name="android.hardware.camera"/>
<uses-permission android:name="android.permission.CAMERA" />
の下に、
<uses-permission android:name="android.permission.WRIGHT_EXTERNAL_STORAGE" />
↑これ追加してるんだが、これで管理者権限付与する的な奴じゃなかったのかーorz
>>717 …よくみたら
WRIGHTって何だろうな…WRITE(書き込み)だよな…
俺が参考にしてたサイトの奴、打ち間違えミスらないようにとコピペしたのが間違いだったな
盲目的に信じてたわ(´・ω・`)スマン…
FileOutputは解決したんだが、やっぱりこっちでもout of memoryが発生するようになったわ…
compressでjpegに圧縮してみるわ!thx
よく考えたら、jpegにしてたんだよなFileOutPutStreamの方は 100にしてたら駄目だから70にしたらout of memoryでないで保存されたわ、マジサンクス そしてギャラリーに出てこないっていう新たな問題が発生してしまったが こっちはまた一日位調べたり弄ってみるお・・ありがとー
WRIGHTワロタ。 絶対間違えてないって先入観は捨てたほうがいいよねw
あながちバカにできにないミスだから困る
実機で確認していないけど、マーケットに登録しておk? エミュレータ上だとそれなりに動くけど、 ダイアログを表示するボタンを連続で押すと二回表示されるバグがある。 実機ならたぶん大丈夫だよね?
>>722 実機でも端末の負荷が高かったりすると出ると思うぞ
ダイアログの表示が同期じゃないから
その後不正な動作しないとかだったら放置でも良いじゃね
なぜかくにんしない
Androidでは、直列化したファイルを保存可能ですか?
>>726 Serializeはそのままあるから使えるぞ
プロセス間通信だと、Parcerable使うことがほとんどだけど
>>722 アプリ名教えておいて。
バグ放置する物は入れたくないから。
>>728 標準の設定アプリとか、マーケットアプリでも発生するからがんばって消してね
さっき同じ機能のアプリ見つけて、
>>405 じゃないけど、ちょっと凹んだ。
でも徹底的に使って問題点見つけて束の間のモチベーションを稼いでみた。
相手は日本人じゃないし、日本語も対応してないみたいだし。
むしろ日本語には積極的に対応考えないな。 英語アプリのほうが馬鹿除けになるw デザイン変えるだけでも使い勝手は違うものだ。自分で使うだけに細かい所もこだわりたくて作ることが多いな。勉強も兼ねてるけど。 二度押しぐらい検出して無視する処理ぐらい入れろよと思う。
>>733 「2回押したんだから2回処理しますよ」って返事返して来たアプリ屋いたな…
今までアプリ作ってて2度押しできたけど動作に問題なかったから無視したもの ・ランチャーアイコン ・ノーティフィケーションの項目 ・ダイアログのボタン ・オプションメニュー ・リストビューの項目 ・スピナー ・ビューの長押しの処理(コンテキストメニューが複数表示される) ビューの変更がタッチ処理と同期じゃないのが根本っぽいけど、 すべて対策とって無視したりしろってのは工数的に無駄
なるほどバカ避けか。その手もあるな。 二度押しは場合によるな。二度押しできるって事はその間イベントループが回ってしまってるって事だよね。 722じゃないけど、どっかのタイミングでモンキーやらんとダメかな。 向き変えるとか、IME出したり閉じたり、別アプリで隠したり。
カメラアプリでの画像の保存場所について相談なのですが、 /sdcard/appname/ /sdcard/Android/data/com.companyname.appname/ /sdcard/DCIM/Camera/appname/ だとどれが良いでしょうか?ガイドラインとかあるんでしょうか? SDカード直下や、データフォルダ直下はプログラムで取得できますが、 filePath + /DCIM/Camera とかコードに書きこんでフォルダパスを指定しても大丈夫かどうかというあたりも心配しています。
API 8以上だと2つ目のフォルダに保存したものはアプリの削除時に一緒に消されるようなので2つ目の方法を使うことにします。
無料アプリなんだから、ちょっと品質が悪くても文句を言うなや! 世の中は「安かろう悪かろう」が正義ですよ!
と思ったが、二度押しができるのはまずいだろ。 リストビューから項目を削除するようなボタンで発生したら、 2つ消してしまったりぬるぽが発生したりするでしょうに。
>>740 まずいと思うなら対応すれば良い、それだけの話
>>735 >・ビューの長押しの処理(コンテキストメニューが複数表示される)
これってどういう操作で発生すんの?
最近コンテキストメニュー実装したから気になる。
743 :
719 :2011/06/01(水) 11:27:49.52
>>730 マニュフェストはeclipse使っててもエラーも警告もでないんぜ・・・
ギャラリー登録出来たんだ。
よっしゃ、これでいい感じでカメラ終了だぜ!って思ったら第二の問題が発生したorz
カメラを撮影する→保存→カメラ画面に戻る→もう一度撮影する→out of memory orz
public void onPictureTaken(byte[] data, Camera c) {
try {
/**
* 各種宣言1
*/
//カメラ画像保存
Bitmap bmp = BitmapFactory.decodeByteArray(data, 0, data.length, null);
//レイヤー画像保存
Bitmap lyBmp = BitmapFactory.decodeResource(getResources(), R.drawable.image);
//合成用空画像作成
Bitmap offBitmap = Bitmap.createBitmap(
bmp.getWidth(),
bmp.getHeight(),
Bitmap.Config.ARGB_4444);
こんな感じになっているんだが、最初の一回は問題なく保存、登録、復帰するんだが
二回目撮影すると、
//カメラ画像保存
Bitmap bmp = BitmapFactory.decodeByteArray(data, 0, data.length, null);
この時点で、out of memoryが発生するんだ…どうしてだろうか?
毎回、撮影と同時に上書きされて、消されてると思うんだが…
Bitmap bmp = null; bmp = BitmapFactory(ry ってやってみると、bmp = の部分で発生してるぽいから 持ってくる、dataがデカすぎる見たいなんだ 問題は1回目では正常に持って来れるのに対して、二回目からは何でout of memory出るのだろうか…
1回目でメモリ使い果たしてるてことだろ。。
jpegの時にも思ったけどグーグル携帯のスペックでpc並の富豪プログラミングは無茶だと思うよ。 ビットマップ複数保持とかそんなメモリ喰い潰し出来る訳無い。端末の表示に問題無い範囲で小さいサイズのビットマップに変換して扱ったほうがメモリも喰わないし動作もサクサク動く様に成ると思うよ。 メモリフル増設もせずに1600dpi設定でフルスクリーンで表示させて重いとか遅いとか文句逝ってる馬鹿な写真屋の行動を思い出した。
>>743 マニフェストのエディタを素直に使えばミスはありえないぞw
>>745 フーム…つまり、カメラで写真取る[Aデータ]
[合成用A'データ] = [Aデータ]保存
[合成用Bデータ(レイヤ)] = [drowble]取り出し保存
[空データCデータ] = [A' + B]保存
カメラリスタート
カメラ撮影[Eデータ」
メモリ内にAデータが残ってる
あぼーnってこと?
持ってきたbyte[] dataを、撮影後に
data.length-1分ループで0クリアしたんだが、これじゃクリアにならないのかな?・・
>>747 あれ使い方わけわかめだったから、テキストエディタで編集してたわ…
ちなみにこんな感じ… /** * 画像変換→画像保存処理 */ /** * ギャラリー登録処理 */ for(int i = 0; i <= data.length - 1; i++) { data[i] = 0; }
カメラリスタート時に以前使用してたbitmapの領域が確保されっぱなしなんじゃないの? カメラリスタート手法が気になる。
>>746 商用のつってもデモ用の画像解析アプリやらされた時はネイティブ使ってゴリ押ししたな、
1.6時代の話だから色々とホネが折れたぜ・・・
こんな端末で500Mpixelの生画像を2つ3つ振り回すとかほんと馬鹿かと思った
>>750 うーん、リスタートか
上のforの後に、camera.startPreview();
位しかやってないから、もしかしたら開放してないかもしれん('A`)
一応
public void surfaceCreated(SurfaceHolder holder)
public void surfaceDestroyed(SurfaceHolder holder)
この段階では、camera.release();
はやってるんだが…
領域開放する時って、何を開放すればいいんだろうか?
後、bitmap合成する際の、元データをクリアする場合
bitmap.recycle();でいいのかな?
ググった感じ、メモリ領域開放ウンヌンはこれ位しか見当たらなかったんだけど
>>743 bitmap は native heap 使うから積極的にrecycle しないとだめ
通常のリソース画像とかならinPurgable つけときゃOSが良きに計らってくれるが、
カメラや自前生成画像はそうもいかない
onDestroy までに確実にbttmapがrecycle されることが目標
断片化って問題もあって色々悩ましい
>>748 参照を切って(data=null) から System.gc() ただしいつgcされるかは運次第。
断片化って問題もあって色々悩ましい
>>753 うおおおおお、有難う、できたああああ
data=null; System.gc();で、出来ました。
なるほどー・・・recycle重要ですか、必要なくなったらすぐrecycleする癖付けます。
//カメラ画像保存
Bitmap bmp = null;
bmp = BitmapFactory.decodeByteArray(data, 0, data.length, null);
data = null; ←必要なくなったので、即null
System.gc(); ←早くやって欲しいから即.gc
/*中略*/
//レイヤー画像保存
Bitmap lyBmp = null;
lyBmp = BitmapFactory.decodeResource(getResources(), R.drawable.image);
offScreen.drawBitmap(bmp,
null,
new Rect(0, 0, bmp.getWidth(), bmp.getHeight()), null);
offScreen.drawBitmap(lyBmp,
null,
new Rect(0, 0, lyBmp.getWidth(), lyBmp.getHeight()), null);
bmp.recycle(); ←合成終わったのでrecycle
lyBmp.recycle();← 同様
感謝ですorz
/*中略*/ 入れるところ間違えたorz メモリ管理厳しいですね… 有難う御座いました
例えば、アプリ内のボタンを押したときに、 ハードウェアキーの戻るが押された時と同じ動作をしたいときは どのようにすればいいのでしょうか。
ハードキーも処理内容書いてやらにゃいかんのだが? イベント拾ってやりたいこと書けばいいだけじゃないの
Activity.finish()でなくてアプリ完全に終了させるにはどうしたらいいの? System.exit()はこわいんだけど
この質問もよく出てくるけど、アプリを完全終了することはない。 ホームアプリを起動して、自アプリが裏に引っ込むだけ。
そもそも完全終了する意味がない……
事故解決 Process.killProcess(Process.myPid()); でいけました
System.exit が怖くて、なぜ Process.killProcess なら怖くないのだろう?
カスタムダイアログの中のテキストが長い場合、 勝手にスクロールバーが出る仕様なのでしょうか? それてもscrollview(スペルうろ覚え)をかましてあるんでしょうか?
765 :
753 :2011/06/01(水) 18:36:43.93
>>754 画像を出力するのが売りのアプリでdecode* に色深度を指定してないとか手抜きすぎる。
ユーザを馬鹿にしてはいけない。
やはり不安なので、実機を買うことにしました。 趣味プログラムなので、万円単位の出費は痛いですがね(´・ω・`)。 それで、ボタンの連打によるダイアログ複数表示のバグは、どうやって防げますか? やっていることは、レイアウトを適用した新しいダイアログを作成し、それをshowしているだけです。 ダイアログの内容は、単純な文字列を入力するだけです。
>>764 知らん。
不安ならsetViewすればよろし。
View view = inflater.inflate(R.layout.dlg_label,null);
final EditText et = (EditText)view.findViewById(R.id.edittext);
et.setText(item.name);
et.setSelection(0,et.getText().length());
new AlertDialog.Builder(self)
.setView(view)
.setPositiveButton("OK",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
imm.hideSoftInputFromWindow(et.getWindowToken(),0);
item.name = et.getText().toString().trim();
item.save(cr);
adapter.notifyDataSetChanged();
}
})
.setNegativeButton("キャンセル",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).show();
>>766 setEnaled(false)してからダイアログの DialogInterface.OnClickListener や DialogInterface.OnCancelListener で 元に戻せばよろし
アンドロイドアプリって広告モデルでもアカウント料の25ドルぐらいは取り返せるんだろうか…
771 :
デフォルトの名無しさん :2011/06/01(水) 19:35:11.99
プロセスまで終了させなくて良いって意見は無視なんだな Process.killProcess()も正常終了させてるわけじゃないから 変な動きしたりするんだけどね
IS01の月8円の俺は余裕
>>768 onDissmissListenerも必要
画面は暗くなるけど、 onSaveInstanceStateで状態を保存する必要は無いようにできないでしょうか。 FLAG_KEEP_SCREEN_ONだとスリープしなくなるけど、 これだと画面が明るいままなので困っています。
>769 AdMob/AdMakerだけでなく、 webページに誘導してGoogleAdsenseもやれば なんとかなるかもね 俺のアプリの場合webのGoogleAdsenseの方が多い時期もある
>>776 何でそんなことが必要なのか分からんが
バックライト消灯時にonPause走るから無理
>>778 RPGのようなゲームを作ってるのだが、Bundleで保存して、
onRestoreInstanceStateで取り出して元に戻すというのがキツすぎる。
Serializableを実装すればクラスまるごと全部放り込めそうだけど、
それでも復元するのはキツい。
>>779 onPauseで保存、onResumeで復帰できれば問題ないんじゃないの?
onRestoreInstanceStateはもっと一時的かつインスタンス固有の状態を復元するのに使うものだと思う。
>>779 onSaveInstanceStateでは、
文字通り状態(コマンドウインドウ開いてるかとか、
カーソルはどこに当たってるか)を保存するだけで
ゲームの進行状況や、キャラの座標や、どんなアイテム持ってるかとかは
その都度更新していっていいんじゃないかな
>>780 間違い。
たとえばホームを押して別のアプリを起動した場合など、
タスクとそのスタックは残ってても画面を処理するActivityインスタンスはプロセスごと殺されてしまう場合がある。
この場合、復帰時にはonCreateでsavedState を受け取る。
>>779 instance state ってのは同一のActivity が複数同時にタスクのスタックに存在するときのものなので、
「保存するべき状態がアプリ固有のもので、同時に複数存在しないか、複数ある場合でも保存先を明らかにできる」のなら
onPause で保存でもまあ問題はない。
>>772 させる「必要」があるか否かは作り手が決めること
ライフサイクルもdalvikのつくりも承知のうえで、させる「必要」があるから
させてるわけで
>>784 DalvikのというかAndroidの仕組み知ってったら
プロセスを終了させるかさせないかを
アプリが管理する必要無いって分かると思うけどな
終了させなきゃリソース開放しきれなくって逃げてるだけだろ
>>782 その時にはすでにonPauseが呼ばれてるし、復帰時にonResumeが呼ばれる。
そもそもactivityのkillはメモリの確保のために起こることなので、メモリ上に残り続けるsavedInstanceStateに意味もなく大きなデータを保存すべきでないと思うな。
キルビック
>>785 明示的に終了させた方がヒープの断片かを防止できるので、
終了時にプロセスを止める方が良いこともある。
ただし、そこまで意識しないといけないケースが多いとは言わないがね
Process.killProcess()で強制終了させたアプリは ActivityManagerのHistoryRecordか何かにゴミが残ったままになってた記憶がある 設定アプリの方から強制終了させたときは問題無かったけど
まあActivityManager#killBackgroundProcess()の方が無難っちゃ無難だな。
一般的にメモリ喰いなプロセスから殺されてシステムの正常化を図られるのはosの実装的には間違いではないと思うけどね。 アプリ側で出来ることはなるべく殺される対象にならない様に、メモリ使用量を少なくすることに勤めて、デジカメの画像処理とかのメモリを多く使用する処理が必要な場合でも出来るだけ一時的なもので住む様に工夫して処理が終わったら速やかに解放してあげることだな。 今後グーグル携帯のスペックも上がって来るだろうから、メモリ潤沢な機種では処理重視にメモリ喰いまくる実装と使い分けてもいいとは思う。
汎用クラスでローカル領域にファイルを保存するには、どうやればいいですか? 元々パソコン用に作った直列化データ保存クラスをそのまま使おうとしたところ、 Read-Only File System というエラー(例外)が発生しました。 それで、自分なりに調べを進たところ、 android.content.Context のメソッドを使えばできるようであることが分かりました。 そのため、各アクティビティに保存用メソッドを作れば楽ですが、 クローンコードは極力避けたいです。 となると、Contextを実装したクラスを使用することになる訳ですが、 保存クラスをあまりAndroidに特化させたくないのです。 (最大限部品として使い回したいのです。) 何か他に方法はないでしょうか?
パスをSDにすりゃ簡単じゃね
>>793 個人情報やパスワード(ハッシュ済み)を保存するので、
SDカードのような簡単に取り外しできる媒体に保存するのは抵抗があります。
暗号化するにしても、それはそれで鍵の保存という問題が生じますし・・・。
保存クラスはパスだけもらうようにしたらいいだけじゃ?
> Read-Only File System ってことは保存しているpathが悪いだけじゃないのか? それくらいAndroid用に変更したら?
>>794 うだうだ言わずにまずはそれで動くのか確認すれば?
で、/data/data/あんたのアプリのパッケージ名/以下のどっか好きなところに保存するようにすりゃいいじゃん。
こういう質問の仕方をするヤツは毎回同じ結末なんだよな。 後出しで「こういうことがあるのでコレではダメです」 「もうちょっとまともな解決方法がいいのですが」 誰がお前のために最後まで解答するんだよ。 ヒントもらったら自分でか・ん・が・え・ろ
汎用クラスのメソッドの引数にContextを渡せ
Androidに特化させたくないらしいから嫌ってことなんでしょ でもAndroidで何かやろうとするとContextはついて回るよね
801 :
754 :2011/06/02(木) 09:01:38.46
>>765 なるほど、中略部分にて一応空のファイルを作成する時はBitmap.createBitmap(x.getWidth(), y.getHeight(),Bitmap.Config.ARGB_8888)辺りは
指定しているのですが
bmp = BitmapFactory.dedodeの段階でできるんです?
BitmapFactory 色深度などでぐぐってみましたが、一番それっぽいのは
bitmap = デコード
Bitmap b = bitmap.copyで指定擦る感じでしたが、これで結構変わるのでしょうか?
あ、createBitmapで作ってるのは 2つの画像を、合成して保存するための空bitmapなので カメラ画像/レイヤー画像に関しては特にないですが…
ああ。。もしかして Bitmap bmp = createBitmap( ); bmp = BitmapFactory.decoreByteArray Bitmap lyBmp = createBitmap(); lyBmp = BitmapFactory.decodeResource にってことかな・・・ふむ・・・
すまない、ARGB_8888の部分だが4444だったわ そういえば8888にしてたらout of memoryでアボーンして変えたの思い出したわ カメラサイズ縮めるか…
>>800 そうなんだよねー
そこが悩ましいんだけど、ソース追えばたいていファイル関連とか何かしら
用途が見つかるからそこをうまく回避してやってる
>>794 実行環境を見て使い分けるようなファクトリーつくることになるよ、結局は
DefaultHttpClientでCookieをローカルに保存するにはどうしたらいいのでしょうか? それらしいクラスとか探したんだけど見つからない
>>792 - createPackageContext 使う
- Activityとの間に共通の基底クラスを挟む
- 単に共通モジュールがcontextを引数に取るようにする
てーかファイルパスの決定なんて共通モジュールに埋め込んだらダメだろ
設計がおかしいよ。パラメータは上流から渡せるようにしとかないと。
>>801 BitmapFactory.Options#inPreferredConfig
>>807 自分でCookieStore を書け
>>808 ありがとう、調べてみる
パッと見見た感じだと
OptionをNewしてそのinPerferredConfigで設定したのを
decode*する際に、optionよ読み込ませる感じっぽいですね
組み込み試してみます
>>810 運営者のことが全く書いてないSNSなんぞ誰がつかうか!
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap bmp = null; //カメラ画像保存
Bitmap lyBmp = null; //レイヤー画像保存
bmp = BitmapFactory.decodeByteArray(data, 0, data.length, options);
data = null; //不要になったカメラデータのリンクを消す(GC用)
lyBmp = BitmapFactory.decodeResource(getResources(), R.drawable.image, options);
Bitmap offBitmap = Bitmap.createBitmap( //合成用空画像作成
bmp.getWidth(),
bmp.getHeight(),
Bitmap.Config.ARGB_8888);
よっしゃ出来たでござる
>>808 有難う
後はオートフォーカス実装ダーー、
タッチイベントに
camera.autoFocus(null);をいれただけだと
↓こんな感じ
camera.autoFocus(null);
camera.takePicture(null,null,this);
オートフォーカスの作動がランダムになっててフイタ
ちゃんと書かないと駄目ってことか…クラスさんお手やらわかに頼みます…
にちゃん寝るも運営者のことは全く説明されてないなw マカとグーグル携帯使いは相容れないと思うよ。言語から違うしw
>>814 登録不要で一応匿名でやれる2chと、idつけるsnsとじゃ色々違うよね。粘着の相手とかしたくもないし。
>>814 確かに同じ土俵に共生させる理由はないかもしれないね。mobileってくくりならWindows系とかSymbianとか入れないとだめだし。
信者どうしの諍いが頻発しそうだ。
正直同じ場所でやると荒れるだけだな。 俺だって「なんで iOS / Android の順なんだ?」とか思ったし。
こんなところでも戦ってるんだな〜 まともな事出来ないけど無駄な争いさせたら天下一品だよな、お前ら
てへ、褒められちゃった♪
ついにム板まで拡大してきたか・・・
マカーはおとなしく絵でも書いててくれればいいのに。
823 :
デフォルトの名無しさん :2011/06/02(木) 18:30:00.91
最初からアプリ内のdrawableに画像を入れている為、apkファイルの サイズが異常に膨らんでおり、apkダウンロードに異常に時間がかかっている 状態です。 画像をネットワーク上から一度だけAndroid実機にダウンロードし、 以降アプリ起動時にはそのダウンロードした画像を表示するといった OpenGLのゲームを作成しようと思うのですが、参考になるサイト などありましたら教えていただけないでしょうか。
>>823 ネットワークからのダウンロードでrangeやretryをちゃんとやるだけで、
特に難しいことは何もない。普通に書け。
>>823 くれぐれもUIスレッドでダウンロードとかしないように。ANR出る。
AsyncTaskかHandlerThreadを使うのがいい。今回はAsyncTaskだろうな。
あとはどこにダウンロードするとかOpenGLでのtipsとかそういうあたりか。
自分はそっちは専門外だ。
ここは質問スレだから雑談は雑談スレ立てなさい
Androidの初心者本終えた程度の俺には おまえらが天上人同士の会話してるように思えるわw リファレンス見ながら適当に作りたいもの作ってるところなんだけど 他に何かいい勉強方法ないかね? もしくは上手い作りのソースコードとか見て参考にしたいのだけど このソースは読んでおけ!的なものあるかな
sdkといっしょに落とせるサンプルアプリのコードとか、標準アプリのソースとか。
他の言語で書かれたコードを移植してみるのも勉強になる。
tigerAPK
>>827 自分も今2本目のアプリを作ってるところ。1本目は陽の目を見なかったからまだ若葉。
単にwidget並べて遊ぶのはほどほどにして、何か通信、グラフィック、db、デバイスあたりを使った
自分が本当に欲しいアプリを作るのがいいと思う。
サンプルアプリを拡張していくのはお薦めしない。意味を理解できてない既存コードが何気に支援してくれちゃったりするから。
読んでおくべきソース、そりゃframeworkと標準アプリのソース。変なサンプルよりずっと勉強になる。
ただ、全部理解しようなんて考えても_。必要なところだけ嫁。
昔はapache commonsのソース読んでたなぁ
assetsのパスはどうやって取得すればいいのでしょうか ファイルのアクセス方法なら出てきますが肝心のパスの情報が出てきません
>>833 意識しない作りにしないと駄目じゃない?
ソースちょっと見ただけだけど、ZIP(apk?)の中を直接見にいくこともあるみたいだし。
エクリプスのエミュレータの動作は信用できませんか?
エクリプスにエミュレータはありません
>>835 結構信用出来ると思うよ
端末1台はあった方がいいと思う
少なくとも毎フレーム描画させるアプリにはエミュは向かない 結局実機テストするし
>>835 Eclipseに追加する奴はあるけど、あれカメラ扱えないんだよねー…
>>722 個人的には、エミュでしか動作確認してないって書いてあれば良いと思うよ
プログラミング初心者です。 macでandroidプログラミングするにあたって不便や不都合なことってありますか? あとrootやカスタムロムを入れるツールのそのほとんどがwindowsで提供されてますけど、root権取得済みの端末があれば有利って場面はありますか?
mac持ってるなら素直にiphone開発やるけどな
>>843 macで不便なんてないなぁ
逆にwinよりメリットあるぞ。
実機のドライバ入れなくて済んだり、macportsが便利だったり。
846 :
823 :2011/06/03(金) 12:15:57.27
>>824 >>825 ネットワークからはHTTP関連のクラス経由で普通に画像を取得できそうです。
処理はANRが出ないようにAsyncTaskを用います。
あとは保存先ですが、下記が参考になりそうでしたので
アプリ専用のローカルフォルダを用いたいと思います。
メモリ制限突破しようと思うとJNIしかないの?
>>847 んなこたない
遅くなるしプリミティブしか扱えないが方法はある
いやいやほとんどの開発環境がウィンドウズ前提だったりするからpcのほうが楽だろう。 マクで嵌っても誰も助け来ないしw ドコモからも無視される。
マックもPCなんだがな・・・
851 :
デフォルトの名無しさん :2011/06/03(金) 15:23:02.18
以下の様にPNGファイルビットマップを読込んで 表示しています。 それなりに思った様に表示されていますが Widにビットマップ幅が入らずに−1になっています。 なぜでしょうか? Resources r = getResources(); m_Bitmap = BitmapFactory.decodeResource( r, R.drawable.icon ); Wid = m_Bitmap.getWidth(); m_Canvas.drawBitmap( m_Bitmap, null, dRct, m_Paint );
852 :
デフォルトの名無しさん :2011/06/03(金) 16:04:44.58
2D画像を全画面で読み込むときにOpenGLだと2のべき乗表示にする為 画像の収縮で画像が横長になったり縦長になったりします。 この場合、もと画像の比率を調整して2のべき乗と近いサイズで作る しか方法はないのでしょうか?
MediaController のデザイン変える方法を教えてください。 videoView.setMediaController(MediaController mediaController); なので extends MediaController したクラスではないといけないのですが MediaControllerの再生ボタンとかのImageButtonとかが private なので、 変更出来ません。 何か技があるのでしょうか?
XPeriaで、AndroidMarketで自分で自分のアプリを買おうとすると サーバーエラーになるのですが、 買う方法ないですかね?他の人のアプリは買えるんですけど LVLの実装をしたいが、確認できないんじゃ困る
日本Androidの会の質問より 2chの質問のほうが高等な物が多いってどうなのよw
2chだと分からない質問はちゃんとスルーするけど Android会だと知りもしない質問に対しても回答する目立ちたがり屋さんが結構いるから
日アン会のレベルが低いのは女子部がいるから
2chは試せばわかる質問は罵倒されるけど、 Android会だと名を売るチャンスとか思って答えるやつが居るから、 何時まで経っても進歩しないんだろうな
>>854 開発者自身は購入出来なかったと思う。別アカウントなら購入できるはず。
しかも間違ってる回答も多々あったりな 某女子みたいにMLで回答せずに自分のブログに記事にするのが良い宣伝の仕方
俺男だけど女子会入ってみたいw
ブサイクなおばちゃんばっかりのイメージ
理系女子気取ってる奴ウザイんだよね
864 :
855 :2011/06/03(金) 21:35:05.03
話しそらしてすまんかった
>>851-
>>854 に誰か答えてやってくれw
>>854 テストアカウントで買える仕様なんだが、実際にはマーケットアプリのバージョンに依存する。restoretransactionを出すと流れてくるので、単にマーケットアプリのバグであるようだ
ウィジット使った組み合わせのそこそこ単純なアプリ作る予定なんだけど UI配置というか、レイアウトで悩む 機能や役割を切り分けて、 UIとはこうデザインするべき的なガイドラインみたいのある? iOS系だとAppleがガイドライン用意してるらしいけど Googleも用意してるのかな
>>866 大雑把なのはしてる。
android developersの"Dev Guide"の中に、"UI Guidelines"って項目があって幾つかに別れて書かれてる。
ただ、見た目のデザインのガイドラインというよりは、メニューとか戻るボタンでどこに戻るとか、機能面のデザインに
ついて書かれてる。
アイコンは見た目のガイドラインがあるけどね。
おお、ありがとう ちょっと見てみる
String str= tmp.toString(); if (str == "") { アラートを出す処理 } tmpはEditTextで取得する値で strが空(何も入力されていない)だったらアラートを出したいんですが 空の判定がうまくいきません どう書けばいいのでしょうか
自己解決しますた equalsですね
>>869 tmp.toString().length()==0
874 :
853 :2011/06/04(土) 10:21:57.03
変更できませn
iphoneのゆけ勇者みたいなゲームありますか?
自分で作ってください
androidエミュレータってなんでこんなに重いんですか? 開発用PCなので2世代前ぐらいのPCを使っていて、 かなりスペックを落としてますが、それでもこんなに重いなんて・・・ スマホは持ってないんですが実機だと軽いんですよね? この重さじゃ開発をためらいます。 Core i3とかi5あたりのCPUでメモリが6Gぐらいあったらサクサク動きます? 開発用に調達しようか悩んでます。
ローカルファイルの存否確認は、どのように行えばよろしいでしょうか? PC と同様に File クラスの exists で確認しようと思ったのですが、 ファイルが存在するのに false が返ってきました。 実際、存否確認処理を除いて読ませてみたら、読み込むことができました。 最悪 IOException に任せるという手もありますが、 他に良い手があればそちらを採用したいです(例外で検知というのが気になるので)。
開発マシン調達する金でAndroidの実機買う方がいいんじゃね おれはVirtualPCで開発環境つくったら、USBが使えなくて 実機デバッグできない...
>>878 i7でもサクサクにはならないから実機の方が良い
startActivityForResult()のような仕組みをactivity以外で使いたいという場合は 同様の仕組みを自分で書くしかないのでしょうか?それより簡単な方法があれば ぜひヒントだけでも教えてほしいと思います。(要は起動したactivityの終了結果が欲しい) 尚、一応自分の認識を書きますと、startActivityForResultはactivity固有の機能で その他ではContext.startActivity()しか利用できず、戻りが必要な場合はそれぞれの要素 の持つ(サービスやレシーバの)機能を利用して戻りを受けとる実装が必要かなと思っております。 そこが間違っているという事であればご指摘もお願いいたします。 一応ググっては見たんですが、探し方が悪いのかそういう例があまり見つかりませんでした (startActivityな例のみ)。
分かってると思うけどエミュはマシンスペック関係ないよ エミュ自体を改善しないと無理
flashで作ってる人いるー?? iphone版、android版、pc版で全く同じものが作れるのかどうか知りたい
885 :
878 :2011/06/04(土) 13:09:43.94
ありがとうございます。 エミュ作り頑張ってほしいけど時間もないので実機を手に入れようと思います。
おれもエミュは使わないでXPERIAだけで開発してる
>>882 ActivityのStackをPopしたときの処理だから
Activityでしか使えなくて当たり前
>>874 ソースをチラ見しただけだけど、
mPauseButton = (ImageButton) findViewById(com.android.internal.R.id.pause)
とかじゃダメ?
onFinishInflate()辺りでなら取れそうだけど
>>853 自分でボタン配置してonClickでVideoViewのstartとか叩くしかない。
android:ellipsize="end"をつけると Viewからはみ出た場合「...」がつきますが、 TextViewにある程度領域があって、複数行の文字列に対して AAAA BBBB CCCC... みたいな形にしたいです. ですが、領域はあるけど、1行目で...がでてしまい複数行になりません. (singleline falseにしてます) どのような設定をすればよいでしょうか.
Java言語とAndroidアプリ開発を同時に学べる素敵な教本はないでせうか・・・。 Androidで探すとJavaがわかってる前提だし Javaで探すとAndroid系のライブラリとか解説してないし・・・w OracleSQLでの開発経験はあるので多少はいじれると自負はしてます(クソにも満たない程度しかいじれないとは思うけど) 何かオススメの本あれば教えてください。スレチだとは思うのですがよろしくお願いいたしますorz
素直にJava一冊勉強すればいいじゃん それからでも遅くはない
>>891 プログラム言語の勉強なんて使ってればすぐ覚えられるでしょ
お約束を覚えれば書き方に違いはないんだし
>>888 通常だと com.android.internal.R.id.pause へはアクセス出来ないので、
リフレクションでゴリ押しで取得してみたところ
int id = (Integer) Class.forName("com.android.internal.R$id").getField("pause").get(null);
Log.v("test", "id :" + id);
取得可能!!
ImageButton imageButton = (ImageButton)findViewById(id);
Log.v("test", "imageButton :" + imageButton);
null.....
となってしまい、結局ダメみたいです。
>>889 承知しました・・・
やっぱこれなんですね・・・
頑張ろっと。
>>891 自分もjavaの勉強すればandroidはweb上の情報だけで十分だと思う。
System.outなんかもandroidで動くし(logcatで確認できる)、
コマンドラインでチマチマやるのが嫌ならコンソール出力をTextViewの出力とかに読み替えればいい。
個人的にはAndroid+NDKの組み合わせの本かサイト、もしくは簡単なゲームのサンプルが欲しい。 タッチイベントの絡み(タッチイベント側にスレッドウエイトかけてるのになぜか重い)とか 画像や音楽のデータをNDK側で管理する場合の方法例が記載されてると嬉しい。 後者に関しては結局Android側で読み込んで(←リソース)NDKにデータを渡すといったちと遠回りなことしてるけど。
androidでAES暗号化通信するのになんかいいライブラリいますか?
初心者向けの欲張り本って絶対に地雷だよねw
BroadcastReceiverのonReceiveで数秒かかる処理を 実行する時は、Handlerの別スレッドで実行した方がいい?
>>901 好き好き。
俺なら
1,2秒ならUI待たせる。
それ以上ならAsyncTaskで%不明のプログレスダイアログ
5秒超えるならAsyncTaskで%表示付ける
>>902 なるほど。ガイドラインないからどうしようかと思ってた。
ANRが出ない程度に処理させればいいのかな。
バックグラウンドで処理させるのでプログレス表示は
いらないからHandlerでやってみる。
>>903 プログレスダイアログ出せばANRは出ないよ。
エレベーターの階数表示と同じで、
出るだけでストレス減らせると勝手に思ってる。
>>904 すまない、再現しない。
こっちの環境ではきちんとtrueをくれる。
SDKのバージョン依存かもしれないから、
バージョン教えてちょ
>>905 正しくは、onReceiveを抜けておけばANRは出ない
>>899 どこのAndroid Hackを言ってるんだw
>>901 Receiverのライフサイクルはとても短いので、
仮にHandlerや別スレッドを使ってもBroadcastReceiverを持つプロセスごと殺される可能性がある。
正しいやりかたはReceiverからServiceを起こすこと。
あ、ActivityやServiceの中で登録したReceiverならまあお好きにどうぞ。
>>909 Service→AlarmManager→BroadcastReceiverという
場合だとどうだろう?
>>909 プロセスがキルされるかどうかは優先度の問題であって
ライフサイクルは直接関係無いぞ
BroadcastReceiverは優先度に影響しないから死にやすいだけで
>>911 「そのレシーバがいつ登録解除されるか」で変わる。
manifest で <receiver> で登録したレシーバはアプリが起動してない状態で呼ばれるので、onReceiveの外側では存在しない=killされる 可能性を考慮しないといけない。
ServiceやActivityで登録されて、onDestroyまでの間に登録が解除されるレシーバであれば、通常はHandler を使うなどしてもよい。
もっとも、これも例外条件はあるがね。Handlerに登録したプロシージャの中でisFinishing をチェックするなど、生存確認をしなければならない。
>>915 そこらへんをまとめた情報源はないもんだろうか?
BroadcastReceiverが優先度に絡まないってのは間違い onReceiveの処理の間は優先度がForegroundで最高 それ抜けると何もなし
>>918 onReceive → onStop(),onDestory() → (onReceiveの中でPostした処理) の順 に実行される可能性がありえるから。
isFinishing()がtrueの場合、既に終了処理が行われているかすぐ行われることが分かっているので、
UIへのイベントの反映は無駄になる。
double と int 掛けると int ってなんなの javaちょーめんどいわー めんどいわー ペチパーより
署名付きapkファイルを出力した後、もう一度実機でデバッグしようとしたら Installing ***.apk... で止まるようになってしまったのですが何か設定とか弄る必要があるのでしょうか Debuggableをtrueにしたり再起動・kill-server等試してみたのですが改善しません
>>922 既にインストールしているそのアプリをアンインストール。
>>923 アンインストールも既に試しましたが駄目でした
実機を再起動orFRは?
ありがとうございます。実機再起動で直りました スレ汚し失礼しました
実際の配布でも、何か問題がある時に再起動の対処を前提でいいの?
>>927 問題の切り分けが困難だからね
基本的にアプリ自身の問題ではないんだろうけど
買ったのにインストールできない、詐欺って書かれるのは辛い
SchemeRegistry AndroidHttpClient#newInstanceあたり参考にしろ
>>929 追加
UrlEncodedFormEntity
アプリの設定ファイルってtxtとかxmlで管理してる人いる? 調べたらアンインストール時は自動的に消せないから、他のアプリで消すしないみたいだけど 一覧表示で消す用のアプリ見られたくないし、既存の設定関数使うしかないかな?
>>931 変なところに保存しなけりゃアプリ管理のところからデータ消せるでしょ
>>932 あれってSDカードだけ?本体はちゃんと消えるのかな
ファイルの出力はjavaのfile outputを使ってるんだけど…
あ、アホなこと言ってたわ SDカード直下に出力してた、インストール先で管理すれば大丈夫そうだね
>>935 なんでSD直下に書き出すの?
設定ファイル程度ならお作法にのっとるべきでは?
>>936 単にテストで作ったファイルが消えなくて、ちょっと調べたらSD出来ないみたいなことが書いてあったんだけど
よくよく考えてみたらその書き込みが2年前だから、SDカードにアプリを保存する概念が無かったからなんだよな
スレ汚しすまん
アプリをなるべく省電力化したいんだけど、 動作中アプリの消費電力の内訳を調べる方法ってない? 端末全体からみたアプリごとの消費電力じゃなく、 アプリ内の処理種別(あるいは構成モジュール)ごとの消費電力を知りたいんだけどどうだろ。
>>938 無理じゃない?
あとはMDP買って測定するくらい
>>938 扱うデバイス(GPS,Audio,動画コーデック,GPU等) によって増えるか、あとはCPU消費に比例して増えるかしかないだろう。
こんなの厳密に測定するのは市販端末そのままじゃムリ。
こんなひどい設計のライブラリは初めて見た
どこがどう悪いのか具体的に示さないと。 アイフォとの比較は要らない。
943 :
938 :2011/06/05(日) 17:16:30.91
結構調べまわったけどやっぱ簡単にはできなそうだな
試みてるワーキンググループはあったけど、まだ成果の共有まではされてなかった
>>939 , 940
ありがとう。
とりあえず動作中にデバイスごとの消費電力の増減を見ながら、
処理ごとの電力消費量をざっくり算出する形でやってみる。
>>943 何をやってるのか知らんが
アプリ標準のデータフォルダに保存しておけば
アンインストール時に消してもらえる
自分でSDに保存してるんだったら自分で消せ
アンインストール時には消せない
xmlでandroid:text=xxxxxxxxx←ここに入れるテキストをプログラムから動的に挿入ってできますか?
>>945 setText("xxxxxxxx")
インストール時に一度だけ実行、という動作はできますか?
javaではゴミクズみたいなフレームワークがもてはやされるからandroid程度でまともなんだろう いろんなゴミクズフレームワークが現れては消えていったなー
2.2でタスクキラー的なものを作っています。 ActivityManager#killBackgroundProcess()で他タスクのプロセスの終了を試みました。 DDMSで該当プロセスが終了されたのは確認したものの、 RunningTaskInfoにはnumRunningが0という形で存在しています。完全に消せる方法はありますでしょうか? それともnumRunningが0のものは無視して扱ってもよいものでしょうか?
>>949 アプリケーションの画面スタックってのとプロセスの起動状態は別にあって、
Androidはスタックを保持したまま(メモリを解放するために)プロセスをkillすることがある。
画面スタックの情報だけあれば、プロセスは後から再生成してinstanceStateだけ復活して再開できるからな。
まあ無視するしかないんじゃないの。
>>950 つまりシステムの都合上情報を保持しているだけで、
タスクをキルするというアプリの目的から考えれば無視して成功したと考えてもよいということですね。
大変助かりました。ありがとうございました。
文字列リソースを追加するときに、いちいち英語用と日本語用の xmlをそれぞれ開いて編集するのがめんどくさいのですが なにかいいツールやeclipseのプラグインなどはないでしょうか?
953 :
デフォルトの名無しさん :2011/06/05(日) 23:40:52.52
GPSを使用して、緯度・経度の値が取得できません。 原因がわかる方がいらっしゃったら教えてください、お願いします。 エミュレータではDDMSを使えば動きます。 実機の方は、他のGPSを使うアプリは使用できます。
>>952 デフォルト言語で完成までもっていってからそのxmlをコピー、
個別に変換ってやってるけど。改版時の話かな。
"MEDIAS"とか"XPREIA arc"などの製品名は Build.MODELから自分で変換するしかないでしょうか?
>>955 変換なんぞ要らんだろ?
取得したString そのまんまだ。
>>956 あれ?Build.MODELはMEDIASだったら"N-04C"、
XPERIA arcだったら"SO-01C"と表示されるんじゃ
なかったでしたっけ?
The server could not process your apk. Try again. って何だよ!!!! Market死んでるんじゃないか
androidはプロパティファイルが使えないのでしょうか? 情報を楽に外出しにする方法をご教授頂きたいです。
>>959 外出しの意味がよくわからんけど、内部データを手軽にエクスポートしたいんだったらプリファレンスファイルをコピーすればいいんじゃないの?
961 :
デフォルトの名無しさん :2011/06/06(月) 01:49:32.81
>>961 android.jarがビルド時に参照されてないのはほぼ確実。
processingとやらのビルド設定によるんじゃないの
>>954 バージョンアップとかちょこっと書き換えたいときのことを想定してました
ググってみましたが、使えそうなツールなどは見つからず…
地道に手作業でがんばるしかなさそうですね
>>963 string resource とかならあるじゃん。 何をどこからどこに外だししたいんだよ。
>>962 なるほど。確かに、processingのbuild instructionではandroid_sdk/tools以下を環境変数に設定するように指定していますが、
android.jarはtools以下には無い(platforms以下にある)ようでした。(android.jarのみをtools/lib以下にコピーとかしてもダメでした)
とりあえずbuild設定ファイルからandroidの部分をコメントアウトしたらビルドできたので、当面それでいこうかと思います。
ありがとうございました。
画像読み込みのことで質問なんですが bitmap[0] = BitmapFactory.decodeResource(getResources(), R.drawable.xx); こんな感じで配列に画像をロードしまくってるんですが、あるときを境に画像がぐちゃぐちゃになるのですが これはAndroid側のバグなんでしょうか? ぐちゃぐちゃというのはbitmap[1]の画像がbitmap[0]になっていたりする感じです。
967 :
デフォルトの名無しさん :2011/06/06(月) 03:04:34.83
質問 実機でデバッグ用に端末を買うとするとなんでもいいんでしょうか? 検討してるのは Streak,Galaxy S,dropad A8です
>>966 普通に考えたらアプリ側のバグだと思うけど。
っていうかあるときって何だよ。
2.3もしくは2.3にアップデートできる端末がいいんじゃなかろうか と個人的感想
>>968 画像を追加したり既存の画像を編集したりしたときです
一応解決法が見つかりました
一度フォルダ内のファイル全部を非難させてもう1回全部いれると直りました
>>966 念力デバッグすると、フォルダのファイルを一つ一つ取得しながらbitmap作ってるんじゃないか?
ループ回ってるあいだにそのファイルシステムにファイルを書き込んだりすると
ファイルの順序が入れ替わったりしてそういう現象になる気がする。
先に前ファイルの情報を取得しとけ。それからbitmapに落とし込め。
外れてたら恥ずかしいが。
>>967 カスタムROMが潤沢に出回っている機種が無難。
俺はDesireのSIMロックフリーで割と満足してる。
2.3に対応したROMが出るのも早かった。
中華Padはマーケット入れたりなんだかんだ面倒なのと、
やっぱユーザはメジャーな端末より少ないのが難。
Streakもまあ似た感じかな…
Galaxy SはROM結構あるけど、ストレージ周りがちょっと特殊なので
いまいちおすすめしないよ。S2では改善されてるらしいけど。
日本人向け作ってないだけなのかもしれないが、xperiaの動作確認しなくても平気なの?
>>971 それがロードははじめだけでそれ以外ファイルにアクセスすることがないんですよね
本当に謎現象です
友人もなってたんですけど意外といないみたいですね・・・
>>973 xperiaも2.1アップデート前提だし。仕事で書いてる分には動作確認する人が2.1で、俺が2.3でやってれば問題ない。むしろ低解像度の端末を確保するのがだるかった。
976 :
デフォルトの名無しさん :2011/06/06(月) 08:00:47.20
>>972 そうですか・・・
他のにした方がいいんですね
考え直してみます
977 :
デフォルトの名無しさん :2011/06/06(月) 08:05:42.65
もう一つ追加で質問 Galaxy tabもストレージ周りが特殊なんでしょうか?
979 :
デフォルトの名無しさん :2011/06/06(月) 08:34:00.88
>>978 参考にしてみます
今はまだ難しいですが・・・
>>957 それが機種名
次のN-06CもMEDIASだぞ
>>974 shape使ってない?
使い方間違ってるとR.drawableのIDがずれることがある
メニューボタン出来た。ヒント下さい イメージとしては アプリがリアルタイムで動いている → メニューボタンを押すと、下にメニューボタンが出てくる ※ここまでは出来ている @メニューボタンを押すと、今ある画面上にプレビュー画像が中央表示される。 その間裏画面は真っ暗or半透明 Aそのプレビュー画像を、タップで右or左に動かすと別画像がプレビューされる。 Bその画像をタップまたは、もう一度メニューボタンをおすと、プレビュー画面が終了する。 2の切り替えは、drawbleの中身の画像を_1みたいな名前にして 画像名から数値文字を取り出して、switch caseで、対応する画像をロードするって形にすればできると思うんだけど…
と思ったら、そもそも R.drawable.File名 のFile名の部分を変更できないな… 動的にここをかえるにはどうしたらいいんだ・・・
ああいやできたわ、スマンコ
リアルタイムでカメラの動画をサーバでみたいんだけど、ググっても良い情報少なくて困ってます。
>>988 おまえの脳味噌じゃ、一生困りっぱなしだろうな
高度過ぎてググッタ程度で見つかるものでもないだろう。 どこかの開発会社に作成頼んだら。 ツイタクライアントに仕込んで勝手にカメラ動画を全世界に配信するアプリとか怖過ぎるw
高度て 過ぎるほどでもないだろ・・・・・
>リアルタイムでカメラの動画をサーバでみたいんだけど そもそもこの条件じゃAndroidは関係ないだろう
>>988 いまいち日本語が不自由らしくてわかりにくいが、端末からの動画をサーバーに送って、
全世界に向けて(笑)再配信したいと言うことか?
なんか恐ろしい機能だが、おまえが調べるべきは端末からの動画の取り出しだけだ。
動画取得→送信→配信。
リアルタイム性に疑問が残るが、技術的な問題あるか?
ストリーミングの送信とか色々課題があるけど、ustreamがあるんだからそれつかえばいいんじゃないの
>>983 既に答えが出てるっぽいけど。
メニューにするんじゃなくて、activityにして、メニューボタンのイベントフックしてactivity呼び出し
そのactivityの属性いじって半透明にしておいてgalleryなんかで画像表示。
メニューボタンでfinishすりゃいいんじゃん?
Webカメラでいいじゃん。
それじゃいやです。
>>988 サーバで見るってことは
俺が作ったリアルタイム遠隔監視カメラとは違うんだな
それでもいいです。
1000です。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。