トップページ⇒tech
1001コメント304KB

Androidプログラミング質問スレ Part13

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2011/10/05(水) 19:03:23.16
このスレではAndroidSDK・NDKやAndroidマーケットに関する質問を扱ってます。

※プログラミング自体が初めて!なあなたには↓↓↓こちらへ
【超初心者】プログラミング質問スレ【基礎】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.68
****前スレ****
Androidプログラミング質問スレ 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.40
1乙
0004デフォルトの名無しさん2011/10/05(水) 21:17:11.70
>>1
乙です。

さっそくですみません。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
↓
pingfile.png
0006デフォルトの名無しさん2011/10/05(水) 22:34:32.66
BitmapFactoryにファイル名指定できるメソッドもあるからそっちの方が楽だと思うぞ
0007デフォルトの名無しさん2011/10/05(水) 22:59:16.52
windows用に人気のあるアプリが作れないカスが
なんでandroid用だったら作れると思ってしまえるのか
0008デフォルトの名無しさん2011/10/05(水) 22:59:30.61
>>5
>>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
Canvasをnewし直してなかっただけでした。
なんかスレ汚しばかりしてすまん。
0011デフォルトの名無しさん2011/10/05(水) 23:29:12.91
>>9
実機持ってるなら使え。持ってないなら諦めてエミュ。
0012デフォルトの名無しさん2011/10/05(水) 23:29:48.88
>>9
中古でいいから実機にすればサクサクになる(1万5千円くらいかな)
電話契約せずWi-Fiアダプタを付ければ家で開発できる(千円)
0013デフォルトの名無しさん2011/10/06(木) 05:56:34.58
方位センサーがいかれたかも・・・
センサの値取得してもどこ指しても230°付近をうろうろしてる

昨日端末を落としちゃったんだけど、センサーってそれで壊れたりするもんなの・・・?
スレチだったらごめん。当方DesireHD。
0014デフォルトの名無しさん2011/10/06(木) 07:12:14.23
電源切ってバッテリー抜け
0015デフォルトの名無しさん2011/10/06(木) 09:02:16.57
>>4
細かいことだけどSDカードのパスは決め打ちしないで
Environment.getExternalStorageDirectory()を
使うべし
実機によって/mnt/sdcard/だったりするから決め打ちは危険
0016デフォルトの名無しさん2011/10/06(木) 09:40:13.91
ふと気になったんですが
みなさん、最終ビルドの際、
ログ出力(android.util.Log) って削除されます?

デバッグ用にある程度残して置きたいけど、セキュリティ上や実行速度的に良くないなら
ラッパークラス作ってコメントアウトする/しないを一元管理とかするのがいいのかな?
0017デフォルトの名無しさん2011/10/06(木) 09:51:17.78
>>15
ありがとう。ちなみに
Environment.getExternalStorageDirectory().toString();
と言う風にtoString()でString型に変換する事が出来たので、
このメソッドに+"任意のフォルダ名"とする事も出来ました。

0018デフォルトの名無しさん2011/10/06(木) 09:57:45.91
>>17
toString()を使わずに、
Environment.getExternalStorageDirectory().getPath();
としたほうがいいぞ。
0019デフォルトの名無しさん2011/10/06(木) 10:32:31.78
物によるかもしれませんが、皆androidでユニットテストしてます?
0020デフォルトの名無しさん2011/10/06(木) 11:24:34.05
色々本屋ネットをあさったのですが出てこないので質問です

BitmapをgetPixelsでピクセルデータ取得し、
ピクセル単位の座標を指定して色を抜き取ることは出来たのですが
Canvasに対して直接座標指定して、ピクセルの色などの情報を抜き出すことって
出来ないんでしょうか?

座標を指定してソコに書き込むツールは豊富なんですが、
書き込んだ後、その座標にナニが存在しているかデータとして取れなくて困ってます
0021デフォルトの名無しさん2011/10/06(木) 11:26:32.25
後々の手間の事を考えると、リリース前にしてる。
0022デフォルトの名無しさん2011/10/06(木) 11:28:34.87
sqlからcountで件数を取得したい場合はどうすればいいのでしょうか。

普通に検索結果を取得したい場合は
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.71
>>22
AS ROWSとか別名つけてgetInt(0)すれば?
0024デフォルトの名無しさん2011/10/06(木) 12:56:47.91
CurorにgetCountってメソッドあるから
c.getCount()でも取れるぞ
0025デフォルトの名無しさん2011/10/06(木) 13:04:04.17
あ、c.getCount()だとエラーになるのね
よく読んでなかったすまん
0026デフォルトの名無しさん2011/10/06(木) 13:12:52.16
getInt(0)で駄目なら別名つけてc.getString(c.getColumnIndex("ROWS"))とか。
なんとなくmoveToFirst忘れてそうな気はするけど
0027デフォルトの名無しさん2011/10/06(木) 14:09:05.13
>23
>26

別名ROWSをつけてgetInt(0)もc.getString(c.getColumnIndex("ROWS"))も試してみましたが、
やはり同様のエラーが出てしまいました。

そもそもindexに-1なんて要求してないのにこのエラーが出てくるのがおかしいんですよね。
もう少し探ってみます。
ありがとうございました。
0028デフォルトの名無しさん2011/10/06(木) 14:26:05.25
>>22
似たようなことやったときは
countを使うとどうしてもうまくうごかなかったんで
countを除いた検索条件で取得して、
cursor.getCount()でお茶濁して対応した
千件くらいなら動作にあまり影響ないはず
0029デフォルトの名無しさん2011/10/06(木) 14:39:57.05
>>27
丁度やりやすいプロジェクト開いてたから試してみた。
やっぱりrawQueryしてmoveToFirstせずにgetIntするとそのエラーでるね。

-1なんて要求してないというか、行(カーソル)を指定してないから初期値の-1になってるだけじゃないか?
0030デフォルトの名無しさん2011/10/06(木) 14:42:18.62
すみません教えてください。

GalaxyS2の実機で開発してるんですが、マニフェストで横画面を指定している
のに、スリープから復帰する瞬間だけ画面が一瞬縦方向になるようです。
(自アプリだけでなくマーケットの他のアプリも同様の現象が見られます)

onWindowFocusChanged呼び出し時でもviewから縦横逆の数字が取れます。
何か対策できないでしょうか?
0031デフォルトの名無しさん2011/10/06(木) 14:46:04.17
つ DatabaseUtils#queryNumEntries
0032デフォルトの名無しさん2011/10/06(木) 15:15:37.69
>>20
少し遠回りな方法だけど
new Canvas(bitmap)
ここで定義したcanvasはbitmapの中身と全く同じ画像イメージを持つようになる
かんばすに書き込んだイメージでーたはbitmap.getPixcels経由で取れるようになる
0033デフォルトの名無しさん2011/10/06(木) 18:39:05.08
て3すと
てすと
てうsと
てうs
テスト
0034デフォルトの名無しさん2011/10/06(木) 21:12:30.81
外部URLから読み込む画像付きlistviewが動作カクカクでどうするか迷ってる
キャッシュしてみた→でも結局一度目はカクカクだよね
最初に全部読み込んでみた→ヌルヌルになったものの最初の読み込みに時間がかかった
DBにblobで保存してみた→ストレージ圧迫しすぎワロタ
行数が割とある画像付きlistviewを使うとき、普通はどうするもんなの?
0035デフォルトの名無しさん2011/10/06(木) 21:53:51.64
>>34
画像を読み込んだ時にListView#invalidateViewsする
回数をわざと減らす
もちろんキャッシュはする前提で
0036デフォルトの名無しさん2011/10/06(木) 22:10:57.76
>>34
ListViewってことは多分getViewで画像を表示させようとしてると思うけど、
その中で直接ダウンロード→表示とするんじゃなくて、
キャッシュがある場合は表示→無い場合は非同期でダウンロード→ダウンロード終了時にListViewの再描画
とするとある程度回避できる。
>>35が言ってるみたいに、画面に表示される分全てのダウンロードが終わってから再描画にしても良い
0037デフォルトの名無しさん2011/10/06(木) 22:34:17.03
なんでGalaxy系ってSDカード入れて無くても
Environment.getExternalStorageState()で?MEDIA_MOUNTEDって返ってくるんですか?
どうやってSDカードマウントされてるか調べるんでしょうか?
あと、Galaxy系以外でも同じような動作をする機種ってあるんでしょうか?
0038デフォルトの名無しさん2011/10/06(木) 23:30:23.43
Activity側で記述することが多く、クラスファイルの肥大化が進み可読性が悪くなってしまいます。
複数のファイルに分割するなどして解決できればいいのですが、普通はどのような方法をとるのでしょうか?

もちろん処理毎に分けれる場合はクラスを作ってはいますが、各Viewの処理やActivityのイベントでごちゃごちゃしてしまいます。
0039デフォルトの名無しさん2011/10/07(金) 00:17:12.54
>>37
内蔵メモリ内に外部メモリの領域があるから
0040デフォルトの名無しさん2011/10/07(金) 04:58:55.36
>>38
折りたたんでコンパクトにする
0041デフォルトの名無しさん2011/10/07(金) 06:28:02.32
>>38
既にAndroid関係ないことを理解出来てればおk。
0042デフォルトの名無しさん2011/10/07(金) 07:28:33.39
2chMateでも他でもよく見かけるスクルールバーのとこにスクロールするときぴょっと出るのは、なんて言うのですか?自分で実装してるんではなくて、APIにあるんですよね?

0043デフォルトの名無しさん2011/10/07(金) 07:29:48.60
>>42
android:fastScrollEnabled="true"
FastScroller
このへんでぐぐれ
0044デフォルトの名無しさん2011/10/07(金) 09:34:07.27
>>32
やっぱりソレしかないですか……

ちょうど今その方法で表現してたんですが
あまりにも回りくどいので、直接的な方法を探してたんです

ありがとうございました
0045デフォルトの名無しさん2011/10/07(金) 11:41:28.62
ActivityはsetContentsでレイアウトxmlを適用できますが、
View(の派生クラス)にレイアウトxmlを適用ってできますか?

例えばFrameLayoutをルートにしたxmlをFrameLayout派生クラスに適用と。

判らなかったのでaddViewで子として登録してますが、一段階層が深くなったのが気になって…
0046デフォルトの名無しさん2011/10/07(金) 12:29:29.67
textviewのテキストにUnderlineSpan()を使用してアンダーラインを加えるのですが、
テキストの色に合わせてアンダーラインの色も変化してしまって困っています。
アンダーラインの色を独立して設定する方法はないでしょうか?
0047デフォルトの名無しさん2011/10/07(金) 13:21:28.32
eeePad TransformerでもgetExternal〜で内蔵メモリ返してくるな。
更にGalaxyと違ってパーティションもわかれてないっぽい。
真SDカードのパスを取れる一般的メソッドが欲しいわ。
0048デフォルトの名無しさん2011/10/07(金) 17:34:30.64
android-x86-2.2-generic.iso 入れてみたんだけど、どうしたらMarket使えるようになるの?
アカウントの初期設定とかないんだけど
0049デフォルトの名無しさん2011/10/07(金) 17:43:48.04
それはバカが使うもんじゃないんだよ。
0050デフォルトの名無しさん2011/10/07(金) 17:46:52.67
ndkでコンパイルされたプログラムは速度優先で最適化されているんですか?
0051デフォルトの名無しさん2011/10/07(金) 18:07:38.81
onCreate時に、FEATURE_NO_TITLE や FLAG_FULLSCREENで 全画面表示アプリにしてるんですが、
画面上段にうっすらとステータスバーかタイトルバーの陰っぽいのが残ってます。(画面外にある
バーの陰だけが画面内の入ってる感じと言えばイメージがわくでしょうか?)
これの消し方を教えてください。
0052デフォルトの名無しさん2011/10/07(金) 18:27:02.09
>>51
0053デフォルトの名無しさん2011/10/07(金) 18:31:06.83
>>51
SSみせて
0054デフォルトの名無しさん2011/10/07(金) 18:31:44.44
>>51
画面焼き付いてるとかじゃなくて?
0055デフォルトの名無しさん2011/10/07(金) 18:45:49.27
半年以上ぶりにアプリ更新したら
>Samsung SC-01C このアイテムはお使いの端末に対応していません。
て言われたんだが、どうすりゃいいのん?
端末自体は除外してないし、前verは普通にインストールできたし
0056512011/10/07(金) 19:02:26.15
>>54
焼き付きじゃないみたいですね。画面の縦横を変えると、それに応じてシャドー?も
変わるので。
0057552011/10/07(金) 19:04:19.93
LCD Density変更してると出来ない場合があるのか。誰得
元に戻したらインストールできた
0058デフォルトの名無しさん2011/10/07(金) 19:21:23.20
AndroidでPHPのexit(10)やdie(10)などの終了コードを取得する方法を教えて下さい。
0059デフォルトの名無しさん2011/10/07(金) 20:01:06.23
>>56
タイトルバーの影は別途消す必要があるはず
Y.A.Mの(ryで見た記憶がある

>>58
Process#waitFor()とか
Process#exitValue()とか
0060デフォルトの名無しさん2011/10/07(金) 20:02:50.86
>>50
でふぉは、サイズ。
0061422011/10/07(金) 20:18:09.96
>>43
ありがとお!
大きくなったら結婚したげる!
0062デフォルトの名無しさん2011/10/07(金) 20:53:04.71
前スレで書き込んですぐ落ちてしまったのでこちらに書きます

activityStartForResultで起動したのにonActivityresultが呼ばれなくて困っています
記述は
setResult(Activity.RESULT_OK, new Intent);
finish();
としています。
ググってみるとマニュフェストのLunchModeが原因ともありますが、なにも記載せずにでも動作しないのでとても困っています

解決方法宜しくお願いします。
0063デフォルトの名無しさん2011/10/07(金) 20:57:51.84
クラス内でボタンを作成してID付けようとしたら、
「R.idは解決できません〜」というエラーが発生しました。
調べてみたら、xmlファイルの方にボタンの設定を書かけばエラーがなくなるとのこと
だったのですが、R.idの未定義エラーはこの方法でしか解決できないのでしょうか?

また、Androidアプリはボタンやビュー等のオブジェクトはxmlファイルの方に
記述するのが一般的なのでしょうか?クラス内のコードだけで作成しようとしても
R.idの未定義エラーとか出てきちゃうんですかね…
0064デフォルトの名無しさん2011/10/07(金) 21:06:46.75
>>62
ActivityGroupやFragments使ってるとなんか違った気がする

>>63
R.*はXMLに記述されたリソースをJavaから参照するために生成されるもの
Javaだけでやりたいんだったら重複しないような好きなIDを振れば良い
0065デフォルトの名無しさん2011/10/07(金) 21:07:44.93
>>60
ありがとうございます
0066デフォルトの名無しさん2011/10/07(金) 21:08:55.89
>>59
androidからphpプログラムを起動する場合の時ではなく、サーバーに置かれているphpにアクセスする場合なんです。
説明不足ですみません。
0067デフォルトの名無しさん2011/10/07(金) 21:35:07.76
>>66
サーバーに置かれているphpをどうやって動かすかによる。HTTP? SSH?
0068デフォルトの名無しさん2011/10/07(金) 21:46:32.40
>>66
サーバープロセスのexitコードって事?
独自の終了関数でも作って、終了の前にクライアントに渡すか、
forkしてリターンコード受け取ってクライアント側に吐き出す。
0069デフォルトの名無しさん2011/10/07(金) 22:44:46.24
今日、最新のSDKにアップデートしたら
javax.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
>>70
チェックをつけた場合に何らかの値を設定してると思う
当然その値によって画面上はチェックが付いてるように見える
それらの値を全て変えた後に、リストビューの再表示を行えばOK
0072デフォルトの名無しさん2011/10/08(土) 00:12:27.81
facebookアプリで投稿のダイアログ出さずに、
edittextに入力したものをbuttonを押したら直で投稿することは可能でしょうか?
0073デフォルトの名無しさん2011/10/08(土) 00:32:02.10
画面の一番上にロゴを表示してその下にタブを
入れたいんだがどうしたらいい?
0074デフォルトの名無しさん2011/10/08(土) 00:41:49.08
>>72
スレチ、アプリスレへGo

>>73
TabActivity使ってるんだったらタイトルバーカスタマイズかなあ
それか自前でタブっぽいレイアウト作るか
0075デフォルトの名無しさん2011/10/08(土) 05:15:36.36
>>64
野良IDを作るなら
http://developer.android.com/intl/ja/guide/topics/resources/more-resources.html#Id
これで作るのが一応正当な作法じゃないかな
0076デフォルトの名無しさん2011/10/08(土) 10:22:23.65
静的に振りたいならそうだけど、動的な場合はどうすんだよ
100個あったら100個分のIDをXMLに書いて配列にでもつっこんどくのかよ
0077デフォルトの名無しさん2011/10/08(土) 10:24:30.18
別にIDって必須じゃないぞ
0078デフォルトの名無しさん2011/10/08(土) 10:40:35.69
例えば、画面上に△みたいなアイコンを常駐させて、
その△を他のアプリのボタン上に持って行ってタップしたらその「他のアプリ」
のボタンを押すようなものって作れるんですか?

マウスポインタのようなのもを作りたいのです
0079デフォルトの名無しさん2011/10/08(土) 12:34:01.13
マウスポインタのような野茂を作るよりは、
野茂のようなマウスポインタを作る方が簡単だ。
0080デフォルトの名無しさん2011/10/08(土) 12:40:28.09
>>78
Root取ってたらできる
0081デフォルトの名無しさん2011/10/08(土) 12:47:08.19
コードだけで書くのにIDをつける理由って何がある?
0082デフォルトの名無しさん2011/10/08(土) 14:16:09.27
他のクラスから参照したい場合、Activityが参照できてれば、View自体を渡さなくてもIDさえ分かれば参照できるとか?
0083デフォルトの名無しさん2011/10/08(土) 14:43:03.43
タブブラウザ的なものを作ろうと思い
WebViewを複数FrameLayoutに重ねてみたのですが
どれかでFlashを再生すると、Flashのビューが全てのWebViewの上にきてしまい、タブ切り換え後にも残ります
Dolphin browserなどではタブ切り替えでFlashのビューも切り替わるので、方法はあるのだと思いますが
どのように対処するのがベターなのでしょうか?
0084デフォルトの名無しさん2011/10/08(土) 15:13:15.39
微妙にスレチかも知れませんが、3Gなどの遅い回線でのテストをしたい場合の方法とか有るのでしょうか
キャリア契約をしてないので3G回線が使えなくて困ってます
0085デフォルトの名無しさん2011/10/08(土) 16:20:37.96
>>35-36
さんくす

リストの画像取得を非同期処理するためにhttp://labs.techfirm.co.jp/android/cho/1079
ここ見ながら作成して、できたように見えたのですがわけのわからない動作をします
具体的にはこんな感じです
・本命の画像が表示される前に、いくつか別の行の画像がパッパッパッっと表示される
・結局違う画像が表示されてしまう場合もある
・かと思えば正常に表示される場合もある
0086デフォルトの名無しさん2011/10/08(土) 16:37:16.37
>>84
PCをルータにして、帯域絞れば?
bjdなどのプロキシ+Negiesで好きな速度には出来る。
0087デフォルトの名無しさん2011/10/08(土) 16:41:41.29
>>85
リストビューの各行のビューは再利用される、ということを理解しておくべき
URLの例のように、AsyncTaskにImageViewを渡した場合、
表示されるまでにスクロールして別の行が表示されたとき
元々表示されていた行の画像が表示されてしまう場合がある
表示させるViewの設定はgetView内でやらないとだめ

流れとしては
getViewが呼ばれる
→画像のキャッシュが無いため非同期で読み込み開始
→ダウンロードした画像をキャッシュとして保存したらリストビューの再表示(invalidateViews)
→getViewが呼ばれる
→キャッシュがあるので画像が表示される
0088デフォルトの名無しさん2011/10/08(土) 17:00:52.03
LEDを点灯させたいんですがなにかいい方法はありますか?
Notificationを使って点灯させると点灯時間の上限が決まってしまうのですが、
アプリ起動中は常に点灯させるようにしたいです。
0089デフォルトの名無しさん2011/10/08(土) 18:15:30.69
>>87
おかげさまで上手くいきました多謝
0090デフォルトの名無しさん2011/10/08(土) 19:36:37.53
SDK を OS 2.3、Min SDKをOS 1.6にし、
ImageViewの派生クラスでピンチズームなどを色々拡張したクラスを作ったのですが
マルチタッチ対応の2.0以前のOSでこのクラスを生成するとVerifyErrorとなってしまいます。

マルチタッチが使えない状態でいいので、このクラスを利用したいのですが
Manifestやソースに何かしらの分岐を組み込むことで対処可能でしょうか?
0091デフォルトの名無しさん2011/10/08(土) 19:56:00.27
起動しているOSバージョンを調べたら?
0092デフォルトの名無しさん2011/10/08(土) 20:17:42.27
>>91
OSは取れたのですがその後の手がわからずで…
下のような感じで出来るかなと思ったんですが。

MyImageView.onTouch(View v, Event event) {
・・・
if (OSが2.0 以上) {
// マルチタッチによるズーム処理
}
// 移動処理
・・・
}

でも1.6の機種でこのMyImageViewのインスタンスを作った時点で
例外がでて分岐までいかないのです。
009390, 922011/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.06
Viewの中に指定した子ビューが存在するかどうか調べるメソッドってありますか?
0095デフォルトの名無しさん2011/10/08(土) 21:09:34.66
>>94
そのviewにandroid:idつけてれば、view.findViewByIdで戻り値null判定すれば?
0096デフォルトの名無しさん2011/10/08(土) 21:45:03.33
メインActivityのListViewからサブのActivityを呼んで、サブで何らかのパラメータを変更し、
戻るボタンを押してメインに戻ってきたらメインのリスト項目に反映させる(設定画面とかでよく有るやつです)
ということをしたいのですが
メインのListViewのスクロール位置を一番上に戻す事無く、この動作をさせることは可能でしょうか
0097デフォルトの名無しさん2011/10/08(土) 21:47:25.73
超基本的で申し訳ないんですが、SDカードの「読み込み」はマニフェストファイルに何も宣言しなくても可能、であってますよね?
エミュ上だとなしでも読み込めるんですがなにか勘違いしてないかと。

ぐぐってみると「SDカードへのアクセスは〜マニフェストに記述が必要」というのは見つかるんですが特に「書き込み」と明記されてなくてよくわからない。
0098デフォルトの名無しさん2011/10/08(土) 21:50:45.41
実機ひとつはもっとけよ
0099デフォルトの名無しさん2011/10/08(土) 22:05:26.34
今のアンドロイドの平均的なスペック(OSバージョン CPU GPU)はどうなっているのでしょう
0100422011/10/08(土) 22:10:32.28
>>97
そのパーミッションを声に出して読んでみれば、正解だとわかるはず。
0101デフォルトの名無しさん2011/10/08(土) 22:27:56.20
いろんな機種に造詣が深い方にお聞きしたいです。
GalaxyのSDカードのパスはgetExternalStorageDirectoryで取得できないって話を今知りました。
調べたらSystem.getenv("EXTERNAL_STORAGE")で/mnt/sdcard/external_sd(GalaxyのSDカードのパス)を取得できるということはわかったのですが、
現在国内で主に流通してる機種についても、上記のやり方で問題ないでしょうか?
これ以外にも機種依存で注意すべき点があれば教えていただきたいです。
■ このスレッドは過去ログ倉庫に格納されています