Androidプログラミング質問スレ Part13
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2011/10/05(水) 19:03:23.16※プログラミング自体が初めて!なあなたには↓↓↓こちらへ
【超初心者】プログラミング質問スレ【基礎】part5
http://hibari.2ch.net/test/read.cgi/tech/1303105502/ (dat落ち)
Eclipse統合M31【Java/C++/Ruby/Python/Perl】
http://hibari.2ch.net/test/read.cgi/tech/1295886572/
★★Java質問・相談スレッド146★★
http://hibari.2ch.net/test/read.cgi/tech/1309048597/
****関連リンク****
■ Android developers http://developer.android.com/
■ ソフトウェア技術ドキュメントを勝手に翻訳 http://www.techdoctranslator.com/
0002デフォルトの名無しさん
2011/10/05(水) 19:04:08.68Androidプログラミング質問スレ Part12
http://hibari.2ch.net/test/read.cgi/tech/1315192665/
Androidプログラミング質問スレ Part11
http://hibari.2ch.net/test/read.cgi/tech/1312405492/
Androidプログラミング質問スレ Part10
http://hibari.2ch.net/test/read.cgi/tech/1309776963/
Androidプログラミング質問スレ Part9
http://hibari.2ch.net/test/read.cgi/tech/1307414265/
Androidプログラミング質問スレ Part8
http://hibari.2ch.net/test/read.cgi/tech/1304819960/
Androidプログラミング初心者質問スレ Part7
http://hibari.2ch.net/test/read.cgi/tech/1301733957/
Androidプログラミング初心者質問スレ Part6
http://hibari.2ch.net/test/read.cgi/tech/1298128401/
Androidプログラミング初心者質問スレ Part5
http://hibari.2ch.net/test/read.cgi/tech/1294136149/
Androidプログラミング初心者質問スレ Part4
http://hibari.2ch.net/test/read.cgi/tech/1290152001/
Androidプログラミング初心者質問スレ Part3
http://hibari.2ch.net/test/read.cgi/tech/1286357268/
Androidプログラミング初心者質問スレ Pert2
http://hibari.2ch.net/test/read.cgi/tech/1282716370/
Androidプログラミング初心者質問スレ
http://hibari.2ch.net/test/read.cgi/tech/1278560954/
0003デフォルトの名無しさん
2011/10/05(水) 20:38:22.400004デフォルトの名無しさん
2011/10/05(水) 21:17:11.70乙です。
さっそくですみません。Bitmapについて、もしくはFileについての質問になると思うのですが、
リソースのPNGファイルをBitmapにセットする時は
Bitmap bitmap = BitmapFactory.decodeResource(getResources() , R.drawable.bitmapfile);
で呼び込めるのですが、SDカードのPNGファイルをbitmapにセットする時の方法がいまいち良く分かりません。
試した事が以下の方法
private filepath;
public void bitmapFile(){
String sdfile = Environment.getExternalStorageState();
if(!sdfile.equals(Environment.MEDIA_MOUNTED)){
filepath = Environment.getDataDirectory();
}
else{
filepath = new File("/sdcard/");
filepath.mkdirs();
}
String BITMAP = filepath.getAbsolutePath() + "/pingfile.PNG";
File image = new File(BITMAP);
try{
FileInputStream file = new FileInputStream(image);
bitmap = BitmapFactory.decodeStream(file);
}
catch(FileNotFoundException e){}
}
これだと何も呼び込まれないです・・。何がおかしいのでしょうか?
0005デフォルトの名無しさん
2011/10/05(水) 21:27:56.01↓
pingfile.png
0006デフォルトの名無しさん
2011/10/05(水) 22:34:32.660007デフォルトの名無しさん
2011/10/05(水) 22:59:16.52なんでandroid用だったら作れると思ってしまえるのか
0008デフォルトの名無しさん
2011/10/05(水) 22:59:30.61>>6
すみません、画像は再度試したら読み込めました。なので、
別のメソッドが原因で表示がうまくいっていなかったようです。
>>6
BitmapFactoryでファイル名を指定は
BitmapFactory.decodeFile(path,引数);ですかね?
ただ、読み込んだ画像にpathで線を引いてもまた元の状態に戻るんですよね・・
また、bitmap.copy〜をして別のBitmap bitmap2などに代入しても同じです。
これは最初の質問とはまた別の質問なのですが。
それにしてもAndroidのBitmapクラスやFileの読み書きは奥が深いですね。
Fileを選択したりフォルダの中を全て読み込んだり表示したりする方法がすごくややこしい。
0009デフォルトの名無しさん
2011/10/05(水) 23:15:44.24開発は実機でやるしかないんですか?
0010デフォルトの名無しさん
2011/10/05(水) 23:18:28.76なんかスレ汚しばかりしてすまん。
0011デフォルトの名無しさん
2011/10/05(水) 23:29:12.91実機持ってるなら使え。持ってないなら諦めてエミュ。
0012デフォルトの名無しさん
2011/10/05(水) 23:29:48.88中古でいいから実機にすればサクサクになる(1万5千円くらいかな)
電話契約せずWi-Fiアダプタを付ければ家で開発できる(千円)
0013デフォルトの名無しさん
2011/10/06(木) 05:56:34.58センサの値取得してもどこ指しても230°付近をうろうろしてる
昨日端末を落としちゃったんだけど、センサーってそれで壊れたりするもんなの・・・?
スレチだったらごめん。当方DesireHD。
0014デフォルトの名無しさん
2011/10/06(木) 07:12:14.230015デフォルトの名無しさん
2011/10/06(木) 09:02:16.57細かいことだけどSDカードのパスは決め打ちしないで
Environment.getExternalStorageDirectory()を
使うべし
実機によって/mnt/sdcard/だったりするから決め打ちは危険
0016デフォルトの名無しさん
2011/10/06(木) 09:40:13.91みなさん、最終ビルドの際、
ログ出力(android.util.Log) って削除されます?
デバッグ用にある程度残して置きたいけど、セキュリティ上や実行速度的に良くないなら
ラッパークラス作ってコメントアウトする/しないを一元管理とかするのがいいのかな?
0017デフォルトの名無しさん
2011/10/06(木) 09:51:17.78ありがとう。ちなみに
Environment.getExternalStorageDirectory().toString();
と言う風にtoString()でString型に変換する事が出来たので、
このメソッドに+"任意のフォルダ名"とする事も出来ました。
0018デフォルトの名無しさん
2011/10/06(木) 09:57:45.91toString()を使わずに、
Environment.getExternalStorageDirectory().getPath();
としたほうがいいぞ。
0019デフォルトの名無しさん
2011/10/06(木) 10:32:31.780020デフォルトの名無しさん
2011/10/06(木) 11:24:34.05BitmapをgetPixelsでピクセルデータ取得し、
ピクセル単位の座標を指定して色を抜き取ることは出来たのですが
Canvasに対して直接座標指定して、ピクセルの色などの情報を抜き出すことって
出来ないんでしょうか?
座標を指定してソコに書き込むツールは豊富なんですが、
書き込んだ後、その座標にナニが存在しているかデータとして取れなくて困ってます
0021デフォルトの名無しさん
2011/10/06(木) 11:26:32.250022デフォルトの名無しさん
2011/10/06(木) 11:28:34.87普通に検索結果を取得したい場合は
SELECT 〜 FROM 〜 WHERE 〜
で、rawQueryしたカーソルを getIntなりgetStringすれば取れるのですが、
SELECT COUNT(*) FROM テーブル名;
とするとエラーにはなりませんが、getInt(0)やgetString(0)すると
以下のエラーが出てしまいます。
android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 1
書いてあるとおりgetIntの引数は0ですし、-1なんか要求していないのですが、
c.moveToFirst();を書いてもgetIntの引数を1にしてもやはり同じエラーが出ます。
sql文が正しくなければrawQueryの時点でエラーになるでしょうし、
c.getCount()しても1が返ってくるだけで原因がわかりません。
どうかご教授願います。
0023デフォルトの名無しさん
2011/10/06(木) 11:35:02.71AS ROWSとか別名つけてgetInt(0)すれば?
0024デフォルトの名無しさん
2011/10/06(木) 12:56:47.91c.getCount()でも取れるぞ
0025デフォルトの名無しさん
2011/10/06(木) 13:04:04.17よく読んでなかったすまん
0026デフォルトの名無しさん
2011/10/06(木) 13:12:52.16なんとなくmoveToFirst忘れてそうな気はするけど
0027デフォルトの名無しさん
2011/10/06(木) 14:09:05.13>26
別名ROWSをつけてgetInt(0)もc.getString(c.getColumnIndex("ROWS"))も試してみましたが、
やはり同様のエラーが出てしまいました。
そもそもindexに-1なんて要求してないのにこのエラーが出てくるのがおかしいんですよね。
もう少し探ってみます。
ありがとうございました。
0028デフォルトの名無しさん
2011/10/06(木) 14:26:05.25似たようなことやったときは
countを使うとどうしてもうまくうごかなかったんで
countを除いた検索条件で取得して、
cursor.getCount()でお茶濁して対応した
千件くらいなら動作にあまり影響ないはず
0029デフォルトの名無しさん
2011/10/06(木) 14:39:57.05丁度やりやすいプロジェクト開いてたから試してみた。
やっぱりrawQueryしてmoveToFirstせずにgetIntするとそのエラーでるね。
-1なんて要求してないというか、行(カーソル)を指定してないから初期値の-1になってるだけじゃないか?
0030デフォルトの名無しさん
2011/10/06(木) 14:42:18.62GalaxyS2の実機で開発してるんですが、マニフェストで横画面を指定している
のに、スリープから復帰する瞬間だけ画面が一瞬縦方向になるようです。
(自アプリだけでなくマーケットの他のアプリも同様の現象が見られます)
onWindowFocusChanged呼び出し時でもviewから縦横逆の数字が取れます。
何か対策できないでしょうか?
0031デフォルトの名無しさん
2011/10/06(木) 14:46:04.170032デフォルトの名無しさん
2011/10/06(木) 15:15:37.69少し遠回りな方法だけど
new Canvas(bitmap)
ここで定義したcanvasはbitmapの中身と全く同じ画像イメージを持つようになる
かんばすに書き込んだイメージでーたはbitmap.getPixcels経由で取れるようになる
0033デフォルトの名無しさん
2011/10/06(木) 18:39:05.08てすと
てうsと
てうs
テスト
0034デフォルトの名無しさん
2011/10/06(木) 21:12:30.81キャッシュしてみた→でも結局一度目はカクカクだよね
最初に全部読み込んでみた→ヌルヌルになったものの最初の読み込みに時間がかかった
DBにblobで保存してみた→ストレージ圧迫しすぎワロタ
行数が割とある画像付きlistviewを使うとき、普通はどうするもんなの?
0035デフォルトの名無しさん
2011/10/06(木) 21:53:51.64画像を読み込んだ時にListView#invalidateViewsする
回数をわざと減らす
もちろんキャッシュはする前提で
0036デフォルトの名無しさん
2011/10/06(木) 22:10:57.76ListViewってことは多分getViewで画像を表示させようとしてると思うけど、
その中で直接ダウンロード→表示とするんじゃなくて、
キャッシュがある場合は表示→無い場合は非同期でダウンロード→ダウンロード終了時にListViewの再描画
とするとある程度回避できる。
>>35が言ってるみたいに、画面に表示される分全てのダウンロードが終わってから再描画にしても良い
0037デフォルトの名無しさん
2011/10/06(木) 22:34:17.03Environment.getExternalStorageState()で?MEDIA_MOUNTEDって返ってくるんですか?
どうやってSDカードマウントされてるか調べるんでしょうか?
あと、Galaxy系以外でも同じような動作をする機種ってあるんでしょうか?
0038デフォルトの名無しさん
2011/10/06(木) 23:30:23.43複数のファイルに分割するなどして解決できればいいのですが、普通はどのような方法をとるのでしょうか?
もちろん処理毎に分けれる場合はクラスを作ってはいますが、各Viewの処理やActivityのイベントでごちゃごちゃしてしまいます。
0039デフォルトの名無しさん
2011/10/07(金) 00:17:12.54内蔵メモリ内に外部メモリの領域があるから
0040デフォルトの名無しさん
2011/10/07(金) 04:58:55.36折りたたんでコンパクトにする
0041デフォルトの名無しさん
2011/10/07(金) 06:28:02.32既にAndroid関係ないことを理解出来てればおk。
0042デフォルトの名無しさん
2011/10/07(金) 07:28:33.390043デフォルトの名無しさん
2011/10/07(金) 07:29:48.60android:fastScrollEnabled="true"
FastScroller
このへんでぐぐれ
0044デフォルトの名無しさん
2011/10/07(金) 09:34:07.27やっぱりソレしかないですか……
ちょうど今その方法で表現してたんですが
あまりにも回りくどいので、直接的な方法を探してたんです
ありがとうございました
0045デフォルトの名無しさん
2011/10/07(金) 11:41:28.62View(の派生クラス)にレイアウトxmlを適用ってできますか?
例えばFrameLayoutをルートにしたxmlをFrameLayout派生クラスに適用と。
判らなかったのでaddViewで子として登録してますが、一段階層が深くなったのが気になって…
0046デフォルトの名無しさん
2011/10/07(金) 12:29:29.67テキストの色に合わせてアンダーラインの色も変化してしまって困っています。
アンダーラインの色を独立して設定する方法はないでしょうか?
0047デフォルトの名無しさん
2011/10/07(金) 13:21:28.32更にGalaxyと違ってパーティションもわかれてないっぽい。
真SDカードのパスを取れる一般的メソッドが欲しいわ。
0048デフォルトの名無しさん
2011/10/07(金) 17:34:30.64アカウントの初期設定とかないんだけど
0049デフォルトの名無しさん
2011/10/07(金) 17:43:48.040050デフォルトの名無しさん
2011/10/07(金) 17:46:52.670051デフォルトの名無しさん
2011/10/07(金) 18:07:38.81画面上段にうっすらとステータスバーかタイトルバーの陰っぽいのが残ってます。(画面外にある
バーの陰だけが画面内の入ってる感じと言えばイメージがわくでしょうか?)
これの消し方を教えてください。
0052デフォルトの名無しさん
2011/10/07(金) 18:27:02.090053デフォルトの名無しさん
2011/10/07(金) 18:31:06.83SSみせて
0054デフォルトの名無しさん
2011/10/07(金) 18:31:44.44画面焼き付いてるとかじゃなくて?
0055デフォルトの名無しさん
2011/10/07(金) 18:45:49.27>Samsung SC-01C このアイテムはお使いの端末に対応していません。
て言われたんだが、どうすりゃいいのん?
端末自体は除外してないし、前verは普通にインストールできたし
005755
2011/10/07(金) 19:04:19.93元に戻したらインストールできた
0058デフォルトの名無しさん
2011/10/07(金) 19:21:23.200059デフォルトの名無しさん
2011/10/07(金) 20:01:06.23タイトルバーの影は別途消す必要があるはず
Y.A.Mの(ryで見た記憶がある
>>58
Process#waitFor()とか
Process#exitValue()とか
0060デフォルトの名無しさん
2011/10/07(金) 20:02:50.86でふぉは、サイズ。
0062デフォルトの名無しさん
2011/10/07(金) 20:53:04.71activityStartForResultで起動したのにonActivityresultが呼ばれなくて困っています
記述は
setResult(Activity.RESULT_OK, new Intent);
finish();
としています。
ググってみるとマニュフェストのLunchModeが原因ともありますが、なにも記載せずにでも動作しないのでとても困っています
解決方法宜しくお願いします。
0063デフォルトの名無しさん
2011/10/07(金) 20:57:51.84「R.idは解決できません〜」というエラーが発生しました。
調べてみたら、xmlファイルの方にボタンの設定を書かけばエラーがなくなるとのこと
だったのですが、R.idの未定義エラーはこの方法でしか解決できないのでしょうか?
また、Androidアプリはボタンやビュー等のオブジェクトはxmlファイルの方に
記述するのが一般的なのでしょうか?クラス内のコードだけで作成しようとしても
R.idの未定義エラーとか出てきちゃうんですかね…
0064デフォルトの名無しさん
2011/10/07(金) 21:06:46.75ActivityGroupやFragments使ってるとなんか違った気がする
>>63
R.*はXMLに記述されたリソースをJavaから参照するために生成されるもの
Javaだけでやりたいんだったら重複しないような好きなIDを振れば良い
0065デフォルトの名無しさん
2011/10/07(金) 21:07:44.93ありがとうございます
0066デフォルトの名無しさん
2011/10/07(金) 21:08:55.89androidからphpプログラムを起動する場合の時ではなく、サーバーに置かれているphpにアクセスする場合なんです。
説明不足ですみません。
0067デフォルトの名無しさん
2011/10/07(金) 21:35:07.76サーバーに置かれているphpをどうやって動かすかによる。HTTP? SSH?
0068デフォルトの名無しさん
2011/10/07(金) 21:46:32.40サーバープロセスのexitコードって事?
独自の終了関数でも作って、終了の前にクライアントに渡すか、
forkしてリターンコード受け取ってクライアント側に吐き出す。
0069デフォルトの名無しさん
2011/10/07(金) 22:44:46.24javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
が出るようになってしまいました。
アプデする以前にコンパイルしたものでは問題が出ません。
コードは同じです。
何かご存知の方いますか?
0070デフォルトの名無しさん
2011/10/07(金) 23:54:39.38一応getChildAtをgetChildCount回ループさせることで「画面内の項目のみ」チェックを入れることが出来ました。
が、全てを取得する方法がわかりません
0071デフォルトの名無しさん
2011/10/07(金) 23:58:54.69チェックをつけた場合に何らかの値を設定してると思う
当然その値によって画面上はチェックが付いてるように見える
それらの値を全て変えた後に、リストビューの再表示を行えばOK
0072デフォルトの名無しさん
2011/10/08(土) 00:12:27.81edittextに入力したものをbuttonを押したら直で投稿することは可能でしょうか?
0073デフォルトの名無しさん
2011/10/08(土) 00:32:02.10入れたいんだがどうしたらいい?
0074デフォルトの名無しさん
2011/10/08(土) 00:41:49.08スレチ、アプリスレへGo
>>73
TabActivity使ってるんだったらタイトルバーカスタマイズかなあ
それか自前でタブっぽいレイアウト作るか
0075デフォルトの名無しさん
2011/10/08(土) 05:15:36.36野良IDを作るなら
http://developer.android.com/intl/ja/guide/topics/resources/more-resources.html#Id
これで作るのが一応正当な作法じゃないかな
0076デフォルトの名無しさん
2011/10/08(土) 10:22:23.65100個あったら100個分のIDをXMLに書いて配列にでもつっこんどくのかよ
0077デフォルトの名無しさん
2011/10/08(土) 10:24:30.180078デフォルトの名無しさん
2011/10/08(土) 10:40:35.69その△を他のアプリのボタン上に持って行ってタップしたらその「他のアプリ」
のボタンを押すようなものって作れるんですか?
マウスポインタのようなのもを作りたいのです
0079デフォルトの名無しさん
2011/10/08(土) 12:34:01.13野茂のようなマウスポインタを作る方が簡単だ。
0080デフォルトの名無しさん
2011/10/08(土) 12:40:28.09Root取ってたらできる
0081デフォルトの名無しさん
2011/10/08(土) 12:47:08.190082デフォルトの名無しさん
2011/10/08(土) 14:16:09.270083デフォルトの名無しさん
2011/10/08(土) 14:43:03.43WebViewを複数FrameLayoutに重ねてみたのですが
どれかでFlashを再生すると、Flashのビューが全てのWebViewの上にきてしまい、タブ切り換え後にも残ります
Dolphin browserなどではタブ切り替えでFlashのビューも切り替わるので、方法はあるのだと思いますが
どのように対処するのがベターなのでしょうか?
0084デフォルトの名無しさん
2011/10/08(土) 15:13:15.39キャリア契約をしてないので3G回線が使えなくて困ってます
0085デフォルトの名無しさん
2011/10/08(土) 16:20:37.96さんくす
リストの画像取得を非同期処理するためにhttp://labs.techfirm.co.jp/android/cho/1079
ここ見ながら作成して、できたように見えたのですがわけのわからない動作をします
具体的にはこんな感じです
・本命の画像が表示される前に、いくつか別の行の画像がパッパッパッっと表示される
・結局違う画像が表示されてしまう場合もある
・かと思えば正常に表示される場合もある
0086デフォルトの名無しさん
2011/10/08(土) 16:37:16.37PCをルータにして、帯域絞れば?
bjdなどのプロキシ+Negiesで好きな速度には出来る。
0087デフォルトの名無しさん
2011/10/08(土) 16:41:41.29リストビューの各行のビューは再利用される、ということを理解しておくべき
URLの例のように、AsyncTaskにImageViewを渡した場合、
表示されるまでにスクロールして別の行が表示されたとき
元々表示されていた行の画像が表示されてしまう場合がある
表示させるViewの設定はgetView内でやらないとだめ
流れとしては
getViewが呼ばれる
→画像のキャッシュが無いため非同期で読み込み開始
→ダウンロードした画像をキャッシュとして保存したらリストビューの再表示(invalidateViews)
→getViewが呼ばれる
→キャッシュがあるので画像が表示される
0088デフォルトの名無しさん
2011/10/08(土) 17:00:52.03Notificationを使って点灯させると点灯時間の上限が決まってしまうのですが、
アプリ起動中は常に点灯させるようにしたいです。
0089デフォルトの名無しさん
2011/10/08(土) 18:15:30.69おかげさまで上手くいきました多謝
0090デフォルトの名無しさん
2011/10/08(土) 19:36:37.53ImageViewの派生クラスでピンチズームなどを色々拡張したクラスを作ったのですが
マルチタッチ対応の2.0以前のOSでこのクラスを生成するとVerifyErrorとなってしまいます。
マルチタッチが使えない状態でいいので、このクラスを利用したいのですが
Manifestやソースに何かしらの分岐を組み込むことで対処可能でしょうか?
0091デフォルトの名無しさん
2011/10/08(土) 19:56:00.270092デフォルトの名無しさん
2011/10/08(土) 20:17:42.27OSは取れたのですがその後の手がわからずで…
下のような感じで出来るかなと思ったんですが。
MyImageView.onTouch(View v, Event event) {
・・・
if (OSが2.0 以上) {
// マルチタッチによるズーム処理
}
// 移動処理
・・・
}
でも1.6の機種でこのMyImageViewのインスタンスを作った時点で
例外がでて分岐までいかないのです。
009390, 92
2011/10/08(土) 20:23:40.23すいません、自己解決しそうです。
クラス内で分岐できないか?リフレクションとかで上手くできないか?
と悩んでましたがよくよく考えたらクラス継承と対処できそうです。
class MyImageView extends ImageView; (1.6以前のOSでも可)
class MyImageViewMulti extends MyImageView; (2.0以上のOS用)
でインスタンス生成の時点でOSによる分岐をさせる事で対処させようかと。
お騒がせしました。
0094デフォルトの名無しさん
2011/10/08(土) 20:38:31.060095デフォルトの名無しさん
2011/10/08(土) 21:09:34.66そのviewにandroid:idつけてれば、view.findViewByIdで戻り値null判定すれば?
0096デフォルトの名無しさん
2011/10/08(土) 21:45:03.33戻るボタンを押してメインに戻ってきたらメインのリスト項目に反映させる(設定画面とかでよく有るやつです)
ということをしたいのですが
メインのListViewのスクロール位置を一番上に戻す事無く、この動作をさせることは可能でしょうか
0097デフォルトの名無しさん
2011/10/08(土) 21:47:25.73エミュ上だとなしでも読み込めるんですがなにか勘違いしてないかと。
ぐぐってみると「SDカードへのアクセスは〜マニフェストに記述が必要」というのは見つかるんですが特に「書き込み」と明記されてなくてよくわからない。
0098デフォルトの名無しさん
2011/10/08(土) 21:50:45.410099デフォルトの名無しさん
2011/10/08(土) 22:05:26.340101デフォルトの名無しさん
2011/10/08(土) 22:27:56.20GalaxyのSDカードのパスはgetExternalStorageDirectoryで取得できないって話を今知りました。
調べたらSystem.getenv("EXTERNAL_STORAGE")で/mnt/sdcard/external_sd(GalaxyのSDカードのパス)を取得できるということはわかったのですが、
現在国内で主に流通してる機種についても、上記のやり方で問題ないでしょうか?
これ以外にも機種依存で注意すべき点があれば教えていただきたいです。
■ このスレッドは過去ログ倉庫に格納されています