Androidプログラミング質問スレ Part25at TECH
Androidプログラミング質問スレ Part25 - 暇つぶし2ch185:デフォルトの名無しさん
12/09/09 14:33:56.20
>>181
Android Supported Media Formats
URLリンク(developer.android.com)
を見る限り、AndroidにMP3のエンコードライブラリは含まれていないから
MP3エンコードの知識が無ければ
既存のライブラリを使うしかないのでは?
LAMEを使ったサンプルはあったよ
URLリンク(garage.uraroji.com)


186:デフォルトの名無しさん
12/09/09 15:18:18.86
LGPLか…

187:デフォルトの名無しさん
12/09/09 15:21:40.59
URLリンク(www.slideboom.com)
AndroidアプリにLGPLのソースは使えない?


188:デフォルトの名無しさん
12/09/09 15:23:16.97
AndroidアプリとLGPLライセンスについて問題ないという解釈のツイート
URLリンク(togetter.com)

189:デフォルトの名無しさん
12/09/09 16:54:38.16
DRM的な視点からはリバースエンジニアリングを許可したくないから
ゲームとかだとLGPLは避けるのが普通

190:デフォルトの名無しさん
12/09/09 17:54:02.07
String path=“/mnt/sdcard/〇〇〇/□□□.jpeg“;っていう指定パスの画像が端末内にあるかを確認するにはどうしたら良い?あくまで読み込まずにあるかどうかだけ知りたい

191:デフォルトの名無しさん
12/09/09 18:22:06.53
ディレクトリ開いてファイルの一覧取得してチェックかね?

192:デフォルトの名無しさん
12/09/09 18:28:38.45
File#exists()

193:デフォルトの名無しさん
12/09/09 18:29:34.76
>>185
MP3のエンコードかぁ。
Lameは使いたくないけど、Lameの劣化コピーすら
出来るきがしないから、再検討してみる。
ありがとう。

194:デフォルトの名無しさん
12/09/09 18:43:37.53
「SDカードに移動」で移す部分はこっちが指定できるのでしょうか?



195:デフォルトの名無しさん
12/09/09 19:24:57.41
移動できるか出来ないかはアプリ側で設定できる
「SDカードの移動」の文字列や移動先は指定できない

196:デフォルトの名無しさん
12/09/09 19:38:48.21
>>195
だとすると通常キャッシュに貯まるデータがユーザーデータに貯まるのは
その機種のバグなんでしょうか?
L-01Dのオプティマスなんですけど、使うたびにユーザーデータが増えて
すぐメモリ残量警告がでて困ってるんですよねえ

197:デフォルトの名無しさん
12/09/09 19:51:00.07
アプリをSDに移動でしても、ユーザデータやキャッシュは本体に保存されるはず

198:デフォルトの名無しさん
12/09/09 19:57:30.46
>>192
ありがとう。試してみる。

199:デフォルトの名無しさん
12/09/09 20:01:47.39
質問です。
ダウンロードして、VideoViewに渡すデータをSDにキャッシュしたいときって、SDに保存してからファイルとして渡すしかない?
この方法だと全てダウンロードしてからでないとエラーになったりした。
API9。

200:デフォルトの名無しさん
12/09/09 20:17:01.92
ストリーミングパイプラインの間に入り込むような記述はMediaPlayerでは書けない。
VideoViewも内部で MediaPlayer を使用しているので同じ制限がある。

端末が持っているコーデックにjavaからアクセスできるようになったのは APL lvel 16から
それ未満の端末では自分でコーデックを書いてサーフェスに描画する形になるかな

201:デフォルトの名無しさん
12/09/09 20:26:02.77
>>200
ありがとうございます。よくわかりました。

202:デフォルトの名無しさん
12/09/09 21:18:39.94
LVL実装しようとしてサンプルプログラムを構築まではできたんですけど、AVDだとgoogleアカウントがなくて認証できない?


203:デフォルトの名無しさん
12/09/10 01:33:42.74
できるよ

アカウント設定した?

204:デフォルトの名無しさん
12/09/10 03:33:22.47
ターゲットがGoogleApiだっけ?マップも使えるやつにしないとダメなはず

205:デフォルトの名無しさん
12/09/10 07:51:28.85
>>203
すみません、どこでアカウント設定できるのでしょうか?

206:デフォルトの名無しさん
12/09/10 10:18:45.58
>205

まず前提条件として、エミュレーターでデバックする場合、AVDで
Google APIsの2.2以上を作成してあることを確認して欲しい

Google APIs < ここ重要
(実機は1.5ならGoogle Playがインストールされてれば大丈夫)

その上で、エミュレーターを起動して、実機と同じようにホーム画面から
Menu, Settings, Account & sync, Add acountでアカウントを追加
上記はバージョンによって多少変わるはず。

207:デフォルトの名無しさん
12/09/10 11:04:07.09
>>206
ありがとうございます。
Android 2.2 で作っていました。APIsとは別物なんですね。

208:デフォルトの名無しさん
12/09/10 20:41:15.10
ListViewについて質問があります。
ArrayAdapterを継承してListViewを作成しているのですが、ListViewのデータとなる配列を空にしてデータを入れ替えた時に何故かListViewが空になって表示される事が稀にあります。
その後何らかの画面更新を行うと(例えばDialogの表示など)内容が反映されます。
データを入れ替えた後にadapter.notifyDataSetChanged();とlistView.invalidateViews();は行っているのですが何が原因やらさっぱり分かりません。
とりあえず画面更新を強制的に行うコードを入れようかと思ったのですが、それも分からず頭を抱えています・・・。

209:デフォルトの名無しさん
12/09/10 22:56:16.29
setListAdapter(nullpo);

210:デフォルトの名無しさん
12/09/10 23:08:21.38
>>208
空にしなきゃいいのでは?


211:デフォルトの名無しさん
12/09/11 00:09:43.30
>>209
更新時にsetListAdapter(adapter)を毎回しております・・・、更新前に一旦null入れた方が良いのでしょうか。

>>210
clear()にて配列を空にしてるのですが、上書きした方が良いでしょうか。

ListViewの更新箇所のプログラムですが、下記のようなコードとなっております。
中身を入れ替える度にUpdateEntry()が実行されます。何かヒントがありましたら宜しくお願い致します・・・。

private void createEntryData() {
//ListViewで表示するデータを取得
ArrayList<EntryStatus> tmpEntryList = getNeweEntry();
entryList.clear();
entryList.addAll(tmpEntryList);
}

212:デフォルトの名無しさん
12/09/11 00:10:31.96
続き

private void UpdateEntry(){
new Thread(new Runnable() {
@Override
public void run() {
handler.post(new Runnable() {
@Override
public void run() {
objDialog.show(); //更新中はダイアログを表示
}
});
createEntryData();

handler.post(new Runnable() {
@Override
public void run(){
if(adapter == null){
adapter = new EntryAdapter(MainActivity.this, R.layout.entry_row, entryList);
}
listView.addFooterView(footerView);
listView.setAdapter(adapter);
objDialog.dismiss();
adapter.notifyDataSetChanged();
listView.invalidateViews();
}
});
}
}).start();
}

213:デフォルトの名無しさん
12/09/11 01:00:21.13
(webブラウザを使わずに)
アプリ内のEditTextに検索したい文字を入力し、ボタンを押す。

入力した文字列がグーグル検索される。

検索結果を取得する。
(検索に引っかかったサイトの名前だけとか)

これの応用がしたいんだけど、初っ端からわからない。
どうやってweb上の検索蘭に情報を渡すの?intent?


214:デフォルトの名無しさん
12/09/11 01:03:16.71
URLリンク(www.google.com)検索ワード
の内容を拾ってくればいい

215:デフォルトの名無しさん
12/09/11 01:04:35.24
1バイトテキストデーターに半角カタカナを使っても
海外の端末で動くのでしょうか?

216:デフォルトの名無しさん
12/09/11 01:10:24.98
>>211
if(adapter == null)じゃなくて
if(adapter != null)では?
困ったときは!=nullを入れる
それがAndroid基準

217:デフォルトの名無しさん
12/09/11 02:04:07.85
>>216
createEntryDataメソッド内にadapter = null;を追加したら更新されるようになりました。
再現性があまり無いので、しばらくこれで様子見てみます。有難うございました。

218:デフォルトの名無しさん
12/09/11 02:42:14.87
>>216
ひでえ基準だなあ

219:デフォルトの名無しさん
12/09/11 03:20:14.87
>>211
データの取得だけサブスレッドで行なう。更新はUIスレッドで。
更新はentryListを直接変更するのではなく、ArrayAdapter.add()等のメソッドを使う。

このあたりが気になった

220:デフォルトの名無しさん
12/09/11 09:05:35.40
Androidは非アクティブでいきなりインスタンスが消えたりするが、
だからといってnullチェック入れればいいというものではない
そんな想定外の状態で動作を継続するのは危険だから、
ぬるぽでアプリ落とした方がむしろ安全だよ

221:デフォルトの名無しさん
12/09/11 13:56:38.82
>>219
有難うございます。初回adapter作成時以外での更新処理はArrayAdapter.clear()後にArrayAdapter.add()を使用してデータの更新を行うようにしてみます。

画面更新更新は
public void run() {
handler.post(new Runnable() {
内なのでUIスレッド上で行っているつもりです・・・。どこかUIスレッドじゃないところで画面更新を行っている箇所がありましたらご指摘お願い致します。

222:デフォルトの名無しさん
12/09/11 17:19:38.33
ググれば普通に出てくる初歩的な回答ばっか

223:デフォルトの名無しさん
12/09/11 17:57:06.71
>ググれば普通に出てくる初歩的な質問ばっか

224:デフォルトの名無しさん
12/09/11 19:33:51.37
>>ググれば普通に出てくる初歩的な質問ばっか

225:デフォルトの名無しさん
12/09/11 19:40:45.23
> > >ググれば普通に出てくる初歩的な質問ばっか

226:デフォルトの名無しさん
12/09/11 19:59:15.73
確かに世の中の重要な問題とはどこかに回答があるようなものではないが、このスレそんなに高尚じゃないよな。

227:デフォルトの名無しさん
12/09/11 20:21:04.60
root 取得済みの中華 Pad (Android4.0.4)で色々いじっているのですが、
/system/fonts にフォントを adb push したとき、そのまま継続して
使える(*1)フォントと、再起動で消えてしまうフォントが存在します。

(*1) プログラムからはTypeFaceとして指定できて、その通りに見える状態

フリーのTrueTypeフォントで確認できたものでは、

OK: しねきゃぷしょん
URLリンク(chiphead.jp)

NG: あくあフォント
URLリンク(www.vector.co.jp)

となっています。system_fonts.xml, fallback_fonts.xml にエントリを
追加してみたのですが、同様でした。

この違いが思い当たらず、悩んでおります。何かヒントやキーワードだけでも
ないでしょうか?

228:デフォルトの名無しさん
12/09/11 20:22:29.47
Android develeoersで日本語で見たいのですがどうすれば日本語化することができますか

229:227
12/09/11 20:27:02.62
なお、関係するか不明ですが、
adb push <フォントファイル> /system/fonts した際、リブート後最初の
push は成功するが、次の push で失敗すると言う様な状況も発生しています。
こちらも、一度目は成功して次が失敗すると言う理由がよく分かりません。

※¥説明しづらいのですが、以下の様な状態です。

$ adb push /path/to/cinecaption227.TTF /system/fonts
4295 KB/s (1680456 bytes in 0.382s) # ←成功

$ adb push /path/to/aquafont.ttf /system/fonts
failed to copy '/path/to/aquafont.ttf' to '/system/fonts/aquafont.ttf': Read
-only file system # ←失敗。しかしリブート後順番を逆にすると aquafont.ttf も成功(*2)

(*2)但し>>227に挙げた様に、あくあフォントは再起動で消えてしまいます。
  こちらの現象でフォントが何か、はあまり関係ありません。

一度目の adb push で何らかの状態が変わっていると思われるのですが、
何がそのような挙動をする(可能性がある)のか…
なお、この状態で adb remount や adb kill-server -> adb start-server も駄目でした。

230:デフォルトの名無しさん
12/09/11 20:56:18.54
rwでremountしてるの?
shellからコピー・移動させた場合はどうなる?

231:227
12/09/11 22:35:16.41
>>230
ありがとうございます。remountし直そうとした際のパラメータはrwです(失敗しますが)
shell からの移動も同様にフォントの配置前後で失敗するようになってしまいますね。

他には、例えば配置前までは chmod できていた /system/fonts 以下のファイルが、
push 後にやはりできなくなる、というような状態です。

この現象からは、fonts 以下への配置をトリガーとする、もしくは監視している何かがいる、
もしくは adb/adbd あたりの何かしらの動作しか想像が付かないのですが(加えて、再起動時に削除する動きも)、
そのような実体をキーワードも知らないため悩んでいます。何かキーワードでも分かればぐぐれるかなと思っているのですが…

232:デフォルトの名無しさん
12/09/11 23:55:29.57
adb shellからmountコマンドでremountを行ってください
エラーメッセージが出たらここに貼ってね

233:デフォルトの名無しさん
12/09/12 00:28:43.23
Activityのライフサイクルで質問があります。
ライフサイクルの図
URLリンク(y-anz-m.blogspot.jp)
などを見てると、onPause()またはonStop()のときに、他のアプリがメモリを要求すると自アプリが終了してonCreate()が呼ばれる
と書いてあります。onSaveInstanceState()や強制終了時にダイアログを出していた場合などのテストを行いたいので、
簡単に再現させたいのですが、どのようにすればいいでしょうか?


234:デフォルトの名無しさん
12/09/12 00:31:28.01
>>233
3Dゲームをやる
かなり重たいウェブサイトを開く

RAM512の機種ならこれでいける


235:デフォルトの名無しさん
12/09/12 00:38:10.43
>>233
画面回転させるだけで出るよ

236:デフォルトの名無しさん
12/09/12 01:01:35.43
>>234,235
ありがとう。無事に再現出来ました。


237:227
12/09/12 09:18:47.01
>>232
ありがとうございます。同じく "Read-only file system" で失敗します。

# 1. 先に、push 前は問題なく mount 出来る状態であることを確認(/dev/block/nandd=元の/system)
$ adb shell
root@android:/ # mount -o rw,remount /dev/block/nandd /system
mount -o rw,remount /dev/block/nandd /system # ※エコーバックです。省略していますがマウント出来ています
root@android:/ # exit
exit

# 2. 再現のためフォントの push を行ってみる。一度目は成功するが、
$ adb push /path/to/aquafont.ttf /system/fonts
3949 KB/s (5615208 bytes in 1.388s)

# 3. 二度目は「Read-only file system」で失敗。
$ adb push /path/to/cinecaption227.TTF /system/fonts

failed to copy '/path/to/cinecaption227.TTF' to '/system/fonts/cinecaption227.TTF': Read-only file system

# 4. この状態で、先に成功した mount をもう一度行ってみると、"Read-only file system" で失敗する
$ adb shell
root@android:/ # mount -o rw,remount /dev/block/nandd /system
mount -o rw,remount /dev/block/nandd /system
mount: Read-only file system
255|root@android:/ #

…というような状態です。


238:デフォルトの名無しさん
12/09/12 10:19:56.83
その辺はほんと端末次第としか…
カスタムロムとかあるんだったら、そちらのsystem配下を置き換えた方が速いかも

239:デフォルトの名無しさん
12/09/12 11:52:44.52
通話内容の録音をしようとしたのですがうまくいきません。

TelephonyManager.CALL_STATE_OFFHOOK で

recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
String filePath = Environment.getExternalStorageDirectory() + "/external_sd/phone.mp4";
recorder.setOutputFile(filePath);
recorder.prepare();
recorder.start();

としたのですが、受話口から音が聞こえません。
その状態でスピーカーホンにすると聞こえたのですが、その部分は無音で録音されていました。

普通に通話できる状態で録音するにはどうすれば良いのでしょうか。

240:デフォルトの名無しさん
12/09/12 12:36:27.13
SurfaceViewで重ね表示してると、表示されないページができてしまうんですが仕様ですか?

(例)
Canvas canvas = surfaceView.getHolder().lockCanvas();
1枚目描画
surfaceView.getHolder().unlockCanvasAndPost(canvas);



Canvas canvas = surfaceView.getHolder().lockCanvas();
2枚目描画
surfaceView.getHolder().unlockCanvasAndPost(canvas);



Canvas canvas = surfaceView.getHolder().lockCanvas();
3枚目描画
surfaceView.getHolder().unlockCanvasAndPost(canvas);

これだと2枚目が消えてしまいます
なぜか1枚目は消えません
わけがわかりません

241:デフォルトの名無しさん
12/09/12 14:05:45.36
前もあったけど、何でSurfaceViewを複数作ろうとするのだろうか

242:デフォルトの名無しさん
12/09/12 14:38:31.60
画像を表示するプログラムを作っているんですが、
ディレクトリ検索中に「/dev/ptmx」をBitmapFactory.decodeFileで
読み込んだタイミングでAndroid端末がフリーズしてしまいます。

原因自体わかっていないのですが、decodeFile前になんらかの
判定を入れるなどしてフリーズを回避することは可能でしょうか?

分かる方がいらっしゃいましたら、回答をいただけると助かります。

243:デフォルトの名無しさん
12/09/12 14:50:23.50
/dev を検索対象から外す

/dev やら /proc あたりは闇雲にアクセスしちゃダメだと思う。

244:242
12/09/12 15:04:01.93
>>243
回答ありがとうございます。
やはりファイル名(ディレクトリ名)で判定して、decodeFile前に除外するしか無いですかね…。

現状は、decodeFileの結果(MIMEタイプ)が対応していない画像だったら
無視してるんですが、「/dev/ptmx」を読み込むと例外すら発生せずに
フリーズしてしまうため困っていました。

もう少し調べて他に方法が見つからなかったら、ご忠告通り、
危なそうなディレクトリは検索対象から省くことにします。

245:デフォルトの名無しさん
12/09/12 15:25:43.13
普通は画像ファイルだったらdecodeする。
あの辺りって、永久に読み込み終わらないファイルとかあったんじゃ…

246:デフォルトの名無しさん
12/09/12 16:12:47.02
implements Callbackって何のために実装するんですか?
実装しないサンプルプログラムもあるし、どれが正しいのか分かりません。
なんでこんなに難解キャンディーズなんでしょうか?


247:デフォルトの名無しさん
12/09/12 16:28:36.55
Callbackを必要とするメソッドに渡すためだろ
そのメソッド使わないなら継承しなくていいし、使う場合でも無名クラスですますこともできる
どちらにしろAndroidの問題じゃなくてJavaの問題

248:デフォルトの名無しさん
12/09/12 19:30:27.34
>>245
zeroとかrandomとかな。
>>244
せめてexternalStorage以下を対象にしろよ。
悪意のあるプログラムと判断されてもおかしくないぞ

249:デフォルトの名無しさん
12/09/12 19:57:23.11
このファイル何だろう?とcatコマンドを撃って部屋中にビープ音が鳴り響いた懐かしい思い出

250:デフォルトの名無しさん
12/09/12 23:41:18.55
ScrollViewがスクロール中か否かを判断するにはどうしたら良いでしょうか?
離したあともスクロールするのでOnTouchEventは使えませんでした

251:デフォルトの名無しさん
12/09/13 00:03:01.24
>>250
OnScrollListener

252:デフォルトの名無しさん
12/09/13 00:03:10.19
ScrollXとかを比較するしかなかった気がする

253:デフォルトの名無しさん
12/09/13 00:22:20.47
drawBitmapで500個くらいを動かしているのですが
速度が遅くてしかたありません
どうしたらいいですか?
スプライトとかないんですか?

254:デフォルトの名無しさん
12/09/13 00:29:53.31
かなり大雑把な質問だな

255:デフォルトの名無しさん
12/09/13 00:56:24.39
遅い原因はスプライト処理にすれば解決するものなの?

256:デフォルトの名無しさん
12/09/13 01:26:55.25
BitmapとDrawableの違いがいまいちわからない・・・

257:デフォルトの名無しさん
12/09/13 01:30:57.38
>>251
ListViewじゃないので使えませんでした

>>252
ScrollYを比較したらできました

258:デフォルトの名無しさん
12/09/13 03:47:30.51
質問です。

getPressure()関数で取得した数値を配列に入れて平均値をとりたいのですが、方法が分かりません。
getHistoricalPressure()関数を使えば取れるはずなのですが、上手くいかずじまいです。
どうすれば出来るでしょうか。

259:デフォルトの名無しさん
12/09/13 05:01:44.89
>>242
/から全部スキャンって馬鹿げてるから、ちゃんとexternalStorageとか確認してからスキャンするべき

>>246
class HogeActivity extends Activity implements View.OnClickListener とかのこと?
無名クラスだと余計なオブジェクトのインスタンスが1個増えるから、本当にパフォーマンスを気にする場合や
サンプルコード等でコード量を短く見せたい場合などに使われるね

>>253
速度を求めるならOpenGLでしょ。あとエミュで遅いとか言ってるんじゃないよな?

>>256
Drawableは状態を持つし、何を描画するかは派生クラスによって異なる。ShapeDrawableとかStateListDrawableとか
Bitmapはビットマップそのものであって「描画に使われるもの」か「描画される先」

>>258
1回のタッチイベントで複数のタッチデータ(位置と圧力)が取れることはあるが、
べつに過去のデータが取れてるわけじゃなくて前回のタッチイベントより後にハードウェアが検出したタッチデータが束ねられているだけ
あと、圧力を取れるかどうかは端末次第でもある

260:デフォルトの名無しさん
12/09/13 05:18:34.31
>>259
取得したデータが一つ一つ格納されている訳では無いのですね。
回答ありがとうございました。すっきりしました。

261:デフォルトの名無しさん
12/09/13 09:14:44.23
>>239
VOICE_DOWNLINKとかでもだめ?

262:デフォルトの名無しさん
12/09/13 09:21:43.49
通話を録音できるというアプリをみても
特定の端末では録音できません、みたいなこと書かれてたりするから、機種依存もあるんじゃないかな

263:242
12/09/13 12:09:48.26
>>248 >>259
助言ありがとうございます。

一応補足しておきますと、Windowsのエクスプローラの様な画面を作ってました。
(下位ディレクトリ含めた全検索はさすがにしてません(汗))

何故移動可能ディレクトリに制限を付けなかったかというと、
アホな話ですが、実機を持っておらず、

「内部or外部ストレージ以外に画像ファイルっておけんのかな?」
「よく分かんねーから自由に移動できるようにすっかー」

という考えの末の仕様でした。

264:デフォルトの名無しさん
12/09/13 16:20:46.45
ゲームを作っているのですが、上手くできません。
ご教授お願いします。

メイン画面の開始ボタンを押す

画面遷移し、3秒間カウントダウンする(画面に3→2→1と表示)

ゲームスタート(具体的にはゲームで使うボタンが配置される)

としたいのですがカウントダウンが上手くいかず、
メイン画面の開始ボタンを押すと、そのままメイン画面で3秒間停止し(ボタンが押された状態のまま)ゲームスタートとなります。

今の方法が、初めにonCreateでレイアウトを作り、カウントダウンメソッドに作ったレイアウトを渡し、TextView,Thread.sleepを使い表示させようとしています。
(以下コード)
TextView tv = new TextView(this);
tv.setText("3");
/* TextView設定は省略 */
rl.addView(tv, tv_lp);
try {
Thread.sleep(1000);
tv.setText("2");
Thread.sleep(1000);
tv.setText("1");
Thread.sleep(1000);
rl.removeView(tv);
} catch (InterruptedException e) {
e.printStackTrace();
}

System.currentTimeMillisとif文を組み合わせてTextViewを変更していく方法もしたのですが、これも上記と同じ結果になってしまいました。
自分でカウントダウンするアニメーションを作って読み込ませるしかできないのでしょうか

265:デフォルトの名無しさん
12/09/13 16:50:46.85
>>264
別スレッド作って、そっちでやらないと更新されない

266:デフォルトの名無しさん
12/09/13 17:00:02.96
プレイストアの販売アカウント設定ですが、個人で行う場合の事業者名、明細に表示する名前は自分の好きなもので構わないのでしょうか。
また売上金を受け取る口座は、これまで支払いで使っていたクレジット番号がそのまま使われるのでしょうか?

267:デフォルトの名無しさん
12/09/13 17:32:15.65
>>264
タイマーで更新するのが簡単なんじゃない?
UIの操作はメインスレッド以外だと、強制終了する場合が
あるので。

268:デフォルトの名無しさん
12/09/13 17:36:38.31
>>264
(new Thread(){
public void run(){

スリープ処理

UIスレッドにpostしてtvにセット

スリープ処理



}}).start();
で出来ない?

269:デフォルトの名無しさん
12/09/13 21:00:02.60
>>265
>>267
>>268
返信ありがとうございます。
>>267の方法でいけました。

ご協力ありがとうございました。



270:デフォルトの名無しさん
12/09/13 22:19:50.57
>>264
この系統の質問って定期的に出てるなぁ
テンプレでも作って入れたら良い気がする

264はどうしてできなかったのか、どうしてできるようになったのか
ちゃんと理解はしたんよね?

271:デフォルトの名無しさん
12/09/13 23:51:33.36
派遣でアンドロイドのプログラム関連の仕事してる人居る?
イクリプスでJavaいじって3dのカブトムシ表示させるぐらいしか出来ないんだけど
俺でも働ける?

272:デフォルトの名無しさん
12/09/14 00:08:10.45
>>271
派遣は厳しいかもね。正社員なら大丈夫かも。

273:デフォルトの名無しさん
12/09/14 00:22:29.07
Canvas.save()の意味が分かりません。
あってもなくても何も変化を感じないのですが、何を保存しているのでしょうか?
イミフ

274:デフォルトの名無しさん
12/09/14 00:49:00.38
canvasを回転させるときに使ってんのをみたことある

275:デフォルトの名無しさん
12/09/14 01:04:22.28
>>271
未経験歓迎のとこなら働ける。
とりあえず、自分で作ったアプリをgoogleplayに登録するか
Webサーバにアップして見てもらうっていうのはどうだろう?
自分はそうしてiPhoneアプリの仕事を派遣でやってるw


276:デフォルトの名無しさん
12/09/14 01:20:47.93
正社員募集、未経験者歓迎のところに応募して
気がついたら経験者として派遣されてたりしないようにな…

277:デフォルトの名無しさん
12/09/14 09:32:32.74
ダイアログが開いた時に以下の方法でソフトキーボードを表示させています。

EditText editText = (EditText)update.findViewById(R.id.Start);
InputMethodManager inputMethodManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.showSoftInput(editText, 0);

この時、数値入力モードで開くにはどうすればよいでしょうか。


278:デフォルトの名無しさん
12/09/14 09:36:17.08
>>277
そのView に android:inputType を指定する

279:デフォルトの名無しさん
12/09/14 09:42:54.96
>>278
すでに設定してあります。

<EditText
android:id="@+id/Start"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginLeft="10dp"
android:layout_weight="1"
android:ems="10"
android:gravity="center_vertical|right"
android:imeOptions="actionNext"
android:inputType="number"
android:maxLength="5"
android:selectAllOnFocus="true"
android:singleLine="true"
android:text="@string/defaultFrom" />


280:デフォルトの名無しさん
12/09/14 09:50:38.47
こいつイラっとすんな

281:デフォルトの名無しさん
12/09/14 10:16:42.49
んじゃIME側が対応してないんだろ

282:デフォルトの名無しさん
12/09/14 10:44:52.40
>>280
気分を害されたのでしたらごめんなさい。

>>281
設定/表示方法自体はこれで合っていると言うことですね。
Android標準、Google日本語入力、ATOK で試しましたが希望の状態には変わりませんでした。

283:デフォルトの名無しさん
12/09/14 15:16:07.56
エミュの実行速度が異常に遅いんですけど、設定とかあるんでつか?
PCは結構早いのを使っています。

284:デフォルトの名無しさん
12/09/14 16:54:13.73
>>283
現時点ではPC性能が良くても重い。どう設定してもあんまり変わらん。
安い実機買った方がいいよ。

285:デフォルトの名無しさん
12/09/14 19:44:37.77
誰か>>273答えてやれよw
ほら出番だぞ>>222
google先生では答えられない崇高な回答みせてやれよ


286:デフォルトの名無しさん
12/09/14 19:49:55.90
>>222の華麗な講義が聴けると聞いて来ましたワクワク

287:デフォルトの名無しさん
12/09/14 20:03:40.08
>>285
save->rotate->文字描画->restore
で斜めに文字描いたりじゃなかったっけ?

288:デフォルトの名無しさん
12/09/14 20:25:09.23
>>287
うん、まあそうなんだけど、
斜めの文字書く「だけ」ならrestoreする必要ないじゃん?
それだとsaveの何が便利なのか分からないじゃん?
そこを説明してあげないと、イミフなまま終わっちゃうじゃん?

でも俺だと
「STGのボスと、それに付随する破壊可能なパーツを、
 別々に描画するときに便利ですよ」
くらいしか説明出来ない訳ですよ。

だから>>222の華麗な講義に期待しているのです。



289:デフォルトの名無しさん
12/09/14 20:43:02.98
実機使え

290:デフォルトの名無しさん
12/09/14 20:48:39.02
Mp = MediaPlayer.create(this,R.raw.test);
Mp.setLooping(false);
Mp.seekTo(0);
Mp.start();
このような感じでサウンド(音声)を鳴らしはじめて、口パクのアニメをするものを作っています。
ところが端末の機種やサウンドのフォーマットの違いで微妙に開始が遅れたりする場合があります。
確実な再生のスタートを取得できるような仕組みはあるのでしょうか?
音ゲーのような物も存在するようなので、方法はあると思うのですが…。

291:デフォルトの名無しさん
12/09/14 21:12:50.44
>>290
mp.getCurrentPosition()はどう?
これも遅延があるっぽいけど、start()で時間計測を開始するよりかは正確なんじゃなかろうか。

292:デフォルトの名無しさん
12/09/15 02:58:52.35
>>290
サウンドのprepare が終わるのを確認したり、progressが変更するのを確認したりしてからアニメをそれに合わせて同期

293:デフォルトの名無しさん
12/09/15 02:59:30.34
ていうかオーディオの遅延の管理ができるのは2.2か2.3からで、それもNDK使用が前提だった気がする

294:デフォルトの名無しさん
12/09/15 05:58:17.75
起動おせーとか思ってたら
100Gの仮想ディスクをせっせと
作ってたことならある

295:デフォルトの名無しさん
12/09/15 13:53:37.86
音楽再生アプリを作ろうと思ってるんですが
音楽再生について詳しく解説した参考書はありますか?

296:デフォルトの名無しさん
12/09/15 14:33:00.07
>>295
API使うなら数行だから解説も何もないだろう。コーデックとかの話?

297:デフォルトの名無しさん
12/09/15 15:13:47.44
>>295
先週、一週間かけて作ったばかりだけど
つまずく度にぐぐったら何とかなったよ

この↓サイトがソースコード付きで解説してくれているのでお薦め
URLリンク(www.atmarkit.co.jp)

298:デフォルトの名無しさん
12/09/15 17:28:25.78
書籍を買いましたが役に立つ情報が全然ありません。
全部読んだ後でも返本できますか?

299:デフォルトの名無しさん
12/09/15 17:48:46.69
はい

300:デフォルトの名無しさん
12/09/15 17:50:57.24
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |        J
/     ∩ノ ⊃  ヽ
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /

301:デフォルトの名無しさん
12/09/15 18:02:51.69
setTheme(android.R.style.Theme_Black_NoTitleBar);の反対がわかりまてん
教えてくだちゃい

302:デフォルトの名無しさん
12/09/15 18:26:28.72
>>301
反対とは?

303:デフォルトの名無しさん
12/09/15 18:45:17.41
getTheme

304:デフォルトの名無しさん
12/09/15 21:11:40.12
ライブ壁紙を作っています
横480ピクセルでホームが5面と仮定して横2400ピクセルの画像を onOffsetChanged() に引っ掛けて
一部分ずつ表示させるという処理をしたいのですが
onOffsetChanged()の最初のパラメータ(xOffset)から、その時表示すべき画像の部分の始点x座標を
求めることはできないでしょうか

ホーム5面の場合、0.00/0.25/0.5/0.75/1.00の値が返ってくるので
単純に画像の幅 * xOffsetだとうまくいかないのです
また、端末かホームアプリによってはピクセル単位でのオフセット値がうまくとれない
ようです

305:デフォルトの名無しさん
12/09/15 22:16:23.16
ホームの最大幅は画面横サイズの2倍 480pxなら960px
2400pxを何もせずにonOffsetChangedに引っかけたら0~960pxの範囲しか見えないんじゃない?
onOffsetChangedで返ってくる数値は
画面の左上がどこにあるのかっていう0~-480pxのオフセットと0.0~1.0の相対値だから
ここから移動範囲を0~1920になるように調整してやってみたら?

306:デフォルトの名無しさん
12/09/15 22:21:48.50
最近の日本の端末はonoffsetchangedがそもそも動かない事が多いよ。

307:デフォルトの名無しさん
12/09/15 22:51:14.79
>>305
大きな画像自体はインスタンス内にBitmapで持ってて、onOffsetChange()でこの画像のどの
範囲を描画すべきかを計算、その範囲画像をCanvasに展開というような動きを考えてます
なるほど、xOffsetを画像の幅ではなく、左上の値域の幅ととらえればうまくいきそうですね
ありがとうございました

>>306
端末とホームアプリによってはonOffsetChanged()は入るのですが、パラメータが
バラバラですね
全部0返してくるのもあるのは参りました
この手のを作る場合、皆さん自力で移動量とか取ってるのでしょうかね

308:デフォルトの名無しさん
12/09/15 23:44:33.31
0が帰って来るものはoffsetとstepともう1つのやつを組み合わせれば行ける。組み合わせ方は自分でやってね。
ver2.3までは何かしら戻ってくる。0なら0が戻ってくる。特殊なやつは最初の設定画面のクリエイト時に端末を取得してpreferenceに保存しとけばいける。
1番厄介なのはさっきも言ったけどonoffsetchangedがそもそも呼ばれない端末。メソッド内に何を書こうが関係ない。俺は一回ジェスチャーディテクターで何とかしようとしたが出来なかった。もし対応策か回避策が出来たら教えてくれ

309:デフォルトの名無しさん
12/09/16 01:59:12.66
>>308
すげー努力家

310:デフォルトの名無しさん
12/09/16 02:38:08.81
パッケージの中身(srcとかgenとか)配布してるとこあったからダウソして見たんだが
これらをそのままeclipseにインポートする方法ってある?

新しくプロジェクトを作ってjavaファイルの中身を移植してその他もできるだけ復元してみたがエラーでてだめだった


311:デフォルトの名無しさん
12/09/16 02:50:38.37
>>310
.projectってファイルがあればインポートできるとおもうけど
ない場合は、自分でプロジェクト作ってでてるエラーみながら
修復だな


312:311
12/09/16 02:54:29.66
念のため補足として
知ってると思うけど、.projectはファインダーでは
表示されません。
ターミナルで ls -laってやらないとみれない


313:デフォルトの名無しさん
12/09/16 07:28:19.25
>>304
0.0~1.0 * (壁紙の幅- 画面幅) が実際のスクロール量じゃないの?

314:デフォルトの名無しさん
12/09/16 10:26:15.85
初心者な質問で申し訳ないのですが…
プロジェクトのBuild SDKをSDK4.0.3にして
Minimum Required SDKをAPI 8 Android 2.2したら
2.2の端末でそのアプリを利用できますか。

表示に関してvalues-v11とかでレベルごとに設定すればいけるのでしょうか。

315:デフォルトの名無しさん
12/09/16 10:49:38.59
AndroidでBitmapのPalletを操作する命令を探しているんですが見つかりません。
知りませんか??

316:デフォルトの名無しさん
12/09/16 11:04:33.18
>>314
うん。ビルド時のターゲットは高め、minSdkVersionは低めにしとけばいい。
APIレベルに関する問題はLintで警告が出る

317:デフォルトの名無しさん
12/09/16 11:51:59.05
>>315
Pallet?

318:デフォルトの名無しさん
12/09/16 12:17:03.08
androidプログラムの初心者です。
最近勉強を始めているのですが質問です。
javaでプログラムを作ったことがあるのですが
そのプログラムをandroidでも動かしたいと思ったら
そのjavaのプログラムのソースコードを
androidのjavaファイルに流用したらいいのでしょうか?

319:デフォルトの名無しさん
12/09/16 12:20:32.79
>>315
URLリンク(developer.android.com)
にはインデックスカラーのピクセルフォーマットは存在しない。
デコード時にインデックス=>RGBの変換が行われてる

320:デフォルトの名無しさん
12/09/16 12:21:14.50
>>318
そのプログラムで使ってるJava APIライブラリの範囲がAndroidと同じなら、
適当に組み込んで適当に画面から呼び出せるようにすればいいよ

たいていそうなってないけど

321:デフォルトの名無しさん
12/09/16 12:30:23.95
>>318
androidでの開発はCネイティブでの開発より面倒くさい
javaだからって幻想抱いたら駄目だよ
MAC+Objective-Cなんて癖のある言語のiOSのが何倍も楽と言われているくらいだぜ?
開発の仕事でもandroidだけは経験者必須って条件での募集が多い

322:デフォルトの名無しさん
12/09/16 12:34:42.80
お前C使ったことないだろ

323:デフォルトの名無しさん
12/09/16 13:23:20.35
Cと比較するとアレだけど
Androidの開発環境が糞で、Javaが時代錯誤の化石言語だってのは同意

324:デフォルトの名無しさん
12/09/16 13:31:22.40
>>318
モデルとかnetまわりは割と使い回してる。もともとそういう設計にしてるからだけど。

325:デフォルトの名無しさん
12/09/16 14:50:51.27
ロジックベースではほぼそのまま流用できるけど
特定のフレームワークに依存してたりするとめんどい
後、標準APIレベルでも微妙に挙動が違ったりはする

326:デフォルトの名無しさん
12/09/16 15:12:17.17
おれAndroidとiOSとWPと全部開発やってるけど、Androidが一番安心できるわ

今から解像度変更に対応させられるiOSやあちこち出来損ないなWP7よりイイ
もちろんゲームやりたければ最初からネイティブコードでもやれる

Javaはマルチスレッド対応がしっかりしている
Javaはthrows宣言のないメソッドから出る例外が制限されている
Androidは解像度やスクリーンサイズをサポートする仕組みが充実してる

不満点はActivityManagerまわりがブラックボックスすぎることかな
現在のタスクスタックの状態くらい参照したい


依存ライブラリが違うのに既存コードを流用とかアホなことさえ考えなければ問題ないよ

327:デフォルトの名無しさん
12/09/16 17:05:06.32
AndroidでのSQLiteの使い方がイマイチわかりません。
オススメの参考書かサイトを教えていただけませんか?

328:デフォルトの名無しさん
12/09/16 17:12:14.58
エミュでCPU使用率が上がるアプリは
実機での消費電力が高いんですか?
また消費電力は少なめを考えたプログラムを作るべきなんでしょうか?
教えてくだちゃい

329:デフォルトの名無しさん
12/09/16 17:14:44.17
>>327
jdbcを使っても動くんだから無理にAndroidの基本機能で動かす必要は無い。
無能ならば無能なりに対処すれば良い。

330:デフォルトの名無しさん
12/09/16 17:17:40.86
>>328
>また消費電力は少なめを考えたプログラムを作るべきなんでしょうか?
そんなもん自分が何を作るのか次第だろう。
自分が考えるべきことをいちいち他人に指示してもらおうとする精神疾患は、
ゆとり教育のたまものなのか?

331:デフォルトの名無しさん
12/09/16 17:25:29.24
これからクワッドコアが主流になるかもしれないからエミュの負荷はあてにならないだぬ

332:デフォルトの名無しさん
12/09/16 17:42:45.83
JDBC使う方が情報も実績も少ないと思うが・・・

333:デフォルトの名無しさん
12/09/16 20:54:07.12
ListViewでfastScrollEnabledを設定した時に出てくる
太いつまみのバーを任意のデザインにしたい場合どうしたらいいでしょうか?
通常のスクロールバーは変更するオプションがあるみたいですが・・・

334:デフォルトの名無しさん
12/09/16 20:54:20.76
>>311
移植して文字コード狂ってるとこあったからそこ修復したがまだ少しエラーが残ってたから1つ1つ潰していったら動いた!
>>312←これはlinuxかなんかかな?とりあえず親切にありがとう


335:デフォルトの名無しさん
12/09/16 21:03:02.54
>>327
接続、切断、クエリ投げ以外はSQLiteやSQL全般の知識が参考になるかと

336:デフォルトの名無しさん
12/09/16 22:19:20.14
>AndroidでのSQLiteの使い方がイマイチわかりません。
なんだからAndroid以外の環境なら分かっていると言うことだ。
だったら素直にjdbcを使えばいいだけの話だろう。
SQLiteのソースを持ってきてndkから呼び出してもいいし、
好きなようにすればいい。

337:デフォルトの名無しさん
12/09/16 22:20:11.18
質問させてください
onDestroyをオーバライドしてファイルに保存する処理を書いたのですがホームボタンを押したときにはonDestroyは実行されずタスクが終了しても保存されていませんでした
馬鹿な質問だと思いますがアプリ終了時に自動的に保存するにはどうすれば良いでしょうか?
よろしくお願いします。

338:デフォルトの名無しさん
12/09/16 22:35:41.47
そもそもホームボタンを押すこととアプリ終了に何の関係があるの?

339:デフォルトの名無しさん
12/09/16 23:14:55.67
jdbc薦めるなよ…

340:デフォルトの名無しさん
12/09/17 00:10:15.28
>>337
ホームボタンを押したときに呼び出される
public void onStop()を使えばいいと思います。

341:デフォルトの名無しさん
12/09/17 00:21:27.44
ホームボタンを押した時はホーム画面が最前面に来るだけ、つまりホーム画面の裏に君のアプリがいる。
メモリを要求されてアプリが破棄されるか、コード内でfinish呼ぶか、タスクキラーに明示的に殺されないとdestroyは呼ばれない。
タスクキラーもガベージを呼ぶだけのものがあったりするし、他人の作ったタスクキラーを過信するのは禁物。

君の望むやり方は2つ。
①onstop、onpauseを使う
アプリの挙動を理解すべし
②ディスパッチキーイベント(だったかな?)を使う。
ホームボタンを押された時の挙動を変える
※google非推奨
俺は①をお勧めするよ。つまり基礎をやり直してねって事。

342:デフォルトの名無しさん
12/09/17 00:39:38.87
プリファレンスの値だけじゃなくてKeyだけ取得する方法ってあるの?

343:デフォルトの名無しさん
12/09/17 00:52:47.68
public void onKey()を使えばいいと思います。

344:342
12/09/17 01:16:58.97
>>343
それは私へのレス?
できるのですかそんなことが・・・

345:311
12/09/17 01:25:13.73
>>343
たぶん、キー違いかww


346:デフォルトの名無しさん
12/09/17 06:20:07.51
SharedPreferences.getAll でいい

347:デフォルトの名無しさん
12/09/17 13:43:35.44
Homeキーはキーイベント拾えないよ

348:デフォルトの名無しさん
12/09/17 17:27:25.03
特殊な方法をやれば拾えるよ。

349:デフォルトの名無しさん
12/09/17 18:21:30.05
特殊な方法を教えて下さい

350:デフォルトの名無しさん
12/09/17 20:04:36.51
ホームボタン押した時にデータを保存するだけならonpause()、onstop()、onuserleavehint()、onuserinteraction()、onsaveinstacestate()

URLリンク(y-anz-m.blogspot.jp)

それからキーイベントの取得はonattachedtowindow()をオーバーライドしてからやれば出来る

URLリンク(stackoverflow.com)

昨日も言ったけどgoogleはやらないでくれって公言してるし、マルウェアと勘違いされる事もあるらしいから、やっぱりキーイベントはやめた方が良いよ。
素直にpauseかstopで良いじゃん。しつこいよ

351:デフォルトの名無しさん
12/09/17 20:14:05.67
TimerのscheduleAtFixedRate()を使って繰り返し処理をしたいのですが、
端末がスリープモードになった時、指定した時間ごとに処理が実行されません。
指定した時間より後に複数回分の処理が纏めて実行されます。(時間のかかる処理ではないです。)

スクリーンを常時ONにすればキチンと動作するのですが、
スリープモードでも同様に動かす方法はないでしょうか?

timer = new Timer(true);
timer.scheduleAtFixedRate(new TimerTask() {
public run() {

// 繰り返し処理

}
}, 0, 5000);

352:デフォルトの名無しさん
12/09/17 20:29:35.38
>>351
にわかなので私の作った方法が合ってってのか分からないけど

タイマーをサービスで動かすってのはいかが?

メインアクティビティとインテントの応報で
実装がややこしくなるのが難点なんですが・・・

353:デフォルトの名無しさん
12/09/17 21:05:21.98
質問させてください
URLリンク(techbooster.org)
このサイト様を参考にさせてもらいながら進めていったのですが

DropboxAPIクラスのメゾットの利用方法がわかりません...

サイト様では FileActionMenuActivity.java を編集するとなっているのですが
新規でプロジェクトを立ち上げた場合ではどの部分にあたるのでしょう?

354:デフォルトの名無しさん
12/09/17 21:48:34.94
>>350
それらはHomeキーが押されたとき以外も呼ばれるからHomeキーが押されたときにしか処理したくない処理を実装するのには不向き

355:デフォルトの名無しさん
12/09/17 21:51:17.28
>>351
・Wakelockを使ってスリープさせないようにする
・AlarmManagerを使ってスリープ中でもイベントを起こすようにする

タイマーの間隔や継続時間等で適当な方をどうぞ

356:デフォルトの名無しさん
12/09/17 22:30:00.16
なんか目的と手段がごっちゃになってる気がするけど…

357:デフォルトの名無しさん
12/09/17 22:47:51.46
>>354
バックキーならセーブ出来たけどホームキーではセーブ出来なかったから両方ともセーブ出来るようにしたいんだろ?pauseとstopの何がダメなの?

358:311
12/09/17 22:51:13.84
>>349

ホームキーのハンドリング
ぐぐったら普通にでてきたけどこれでいい?

URLリンク(y-anz-m.blogspot.jp)


359:デフォルトの名無しさん
12/09/17 23:29:41.04
&gt;
↑こういうエスケープ?された文字の戻し方を教えて下さい

360:デフォルトの名無しさん
12/09/17 23:32:31.77
unescapeurl とか・・・

361:デフォルトの名無しさん
12/09/17 23:48:42.30
何が聞きたいの?
エスケープシーケンス?
unicode?
ヒント少な過ぎて、さっぱり分からん

362:311
12/09/18 00:03:06.64
>>361
おれにはわかるぞ。
>>359のいいたいことが・・・

たぶんHTMLデコードしたいんじゃないか?ww
「>」>「>」
こう変換するAPIをさがしてるのだろう。


363:311
12/09/18 00:03:53.34
>>362
あ、エンコードされてしまったww


364:デフォルトの名無しさん
12/09/18 00:13:14.32
Html.fromHtml( getString(~))
これじゃだめなの?

365:デフォルトの名無しさん
12/09/18 00:59:40.09
自分だったら、明示的に保存するのはonBackPressedでやって、
それ以外はonSaveInstanceStateで一時的に退避してonCreateで復帰させるかな

onPauseやonStopで保存するってことはonResumeやonStartで
保存したデータ読み込むんだろうけど、ちょっと無駄が多い気がする

366:デフォルトの名無しさん
12/09/18 16:24:08.32
Androisは2枚のcanvasが乱ダムに表示されるのでclearがないと不便なんですが
どう構築すればいいんですか?canvasのレイヤを指定する方法が見つかりません

367:デフォルトの名無しさん
12/09/18 16:30:48.65
canvasとか使い捨てでいいじゃん

368:デフォルトの名無しさん
12/09/18 16:48:01.79
>>360-364

>>362さんのいうようにしたいんです。>>364で出来ますか?

20時くらいに家に帰るのでそれまで確認出来ません

369:デフォルトの名無しさん
12/09/18 17:09:07.19
じゃあ帰って確認しろ

370:351
12/09/18 19:42:02.29
>>352,355
WakeLockを使って思うような挙動になるのを確認しました。
ただバッテリーの消費が気になるので、AlarmManagerやServiceも試してみようと思います。
ありがとうございました。

371:デフォルトの名無しさん
12/09/18 23:30:56.62
外部jarをlibs配下にコピーしてAndroid Dependenciesにも表示されているのですが
そのjarがAPKに組み込まれず実行時にNoClassDefFoundErrorになってしまいます。
SDKのverは20.0.3です

どうすれば参照しているjarをAPKに組みこめるのでしょうか?

372:デフォルトの名無しさん
12/09/19 00:46:26.59
>>371
proguard有効にしてないよな?

373:デフォルトの名無しさん
12/09/19 01:52:22.39
ヒントが少なくて分からん。
android jar noclassdeffounderror
でググってみ。何パターンかの問題とその解決法が出てくるよ

374:371
12/09/19 02:51:07.40
eclipse4.2でビルドしています。
対象のプロジェクトから外部のjarファイルを参照しており
Eclipseから実行/デバッグした時にこのjarファイルがパッケージに含まれずに
エミュレータ上で対象アプリを起動したときにNoClassDefFoundErrorになります。
検索で見つかったことは一通り試しているのですがどうしてもパッケージに含まれないままです。

>>372
proguardは有効にしていないです

375:デフォルトの名無しさん
12/09/19 03:04:33.90
質問です。

RelativeLayoutが使えるバージョンとかって決まっているのでしょうか?
android1.6で使おうとすると、ソースが見つかりませんでした。のエラーが出ます。

ちなみに同じ事をLinearLayoutでやろうとするとうまくいきます。


376:311
12/09/19 04:26:46.67
>>374
eclipse終了させてターミナルから-cleanオプションつけて起動すると
うまくいくことがある。

eclipseのインストールフォルダで
./eclipse -clean

あとは、F5キーでプロジェクト更新したりとか
プロジェクトのクリーンを実行したりくらいかな


377:デフォルトの名無しさん
12/09/19 05:15:56.79
初歩的な質問で悪いんだが
画面下に
ボタンを横に4つ2行計8個
xml使わずに並べるにはどうしたらいい?

378:デフォルトの名無しさん
12/09/19 05:52:37.59
>>374
Java Build PathのOrder and Exportでチェック付いてる?

379:デフォルトの名無しさん
12/09/19 08:28:11.18
>>378
Android Dependenciesに含まれている場合はそれは不要のはず

どうしても解決しないならlibsに入れないで、ビルドパスに追加した後
>>378の設定やってもいけることはいける

380:デフォルトの名無しさん
12/09/19 08:43:17.36
>>377
xmlで組むのと同じことをJavaのコードでやればいい

381:デフォルトの名無しさん
12/09/19 08:58:37.29
>>377
普通にLineraLayoutをnew して Activity#setContentView に渡す
そのLLの中に好きなようにView階層を組んでいく

setLayoutParams でぐぐれば例はいくらでも出てくる

382:デフォルトの名無しさん
12/09/19 14:53:36.40
実機でも遅い気がするんですが仕様ですか?
でもグリグリ3D動かしてるゲームとありますよね?
Android-Javaでどうやってあそこまでできるんでしょうか?
教えてくだたい。

383:デフォルトの名無しさん
12/09/19 15:03:18.46
>>382
OpenGLES使ってる?Javaでも割と速度出るよ
それでも目標速度にならない場合はNDK一択。
凝った3Dで頑張ってるゲームはフルNDK開発と見て、まず間違いないんじゃないかしら

384:デフォルトの名無しさん
12/09/19 19:12:21.25
文字列の入力とリストからの選択が出来る custom preference ってどこかに落ちてませんかね?

385:デフォルトの名無しさん
12/09/20 00:20:15.41
 android初心者なので、もしかすると根本が分かってないかもしれませんが、よろしいでしょうか。

 今現在、クラスAで画面を作り、LinearLayoutにクラスBで作ったTextViewを貼り付けているのですが、
このTextView(クラスAのobj_tv1、またはobj_tv2)がタッチされた時、クラスA側でobj_tv1、または
obj_tv2がタッチされた事を察知させる方法は何かありますでしょうか。
 ちなみに、今は以下のような感じで作っています。(主要な部分を抜粋して記載しています)

public class クラスA extends Activity{
  private クラスB obj_tv1;
  private クラスB obj_tv2;
  private LinearLayout obj_LL;
  public void onCreate(Bundle savedInstanceState) {
    obj_tv = new クラスB(this);
    obj_LL = (LinearLayout)findViewById(R.id.xxxx);
    obj_LL.addView(obj_tv1);
    obj_LL.addView(obj_tv2);
  }
}

class クラスB extends TextView implements View.OnTouchListener{
  public boolean onTouch(View v,MotionEvent event){
    タッチした時の処理
  }
}

 質問の内容で不明な部分などありましたら、ご指摘頂けると幸いです。
 なにぶんandroidが初めてなもので、見当違いな事を言っているかもしれませんが、どうぞよろしく
お願い致します。

386:デフォルトの名無しさん
12/09/20 00:38:46.55
質問があります。
イヤホンジャックにイヤホンが刺さっているかどうかを判断したいのですが、なにか方法ありますか?
AudioTrackで再生するときにスピーカーだったら再生せずに、イヤホンのときだけ再生させたいです。


387:デフォルトの名無しさん
12/09/20 00:47:34.35
>>385
static経由で無理矢理呼べるけど、クラス分けずに素直に匿名のリスナ登録するのじゃだめなのかな

388:デフォルトの名無しさん
12/09/20 01:12:43.88
>>385
クラスBにコンストラクタを追加して引数でクラスAのインスタンスを受け取って
クラスBから好きな時点で好きなようにクラスAのメソッドを呼べばいい

389:デフォルトの名無しさん
12/09/20 01:18:24.88
コンストラクタって何ですか?

390:デフォルトの名無しさん
12/09/20 01:54:03.86
>>389
せめてぐぐってから質問しろ

391:385
12/09/20 02:41:13.90
>>387
 static経由というのは、クラスA、クラスBのどちらに変数(メソッド?)を作ったらいいのでしょうか。
 基本的な質問かもしれません、すみません。
 あと、クラスを分けずにとのアドバイスですが、クラスBのプログラムも長くなっているので今から
クラスAに移動すると、正直どこをどう修正すればいいかわからない状況なので、できれば現状のままで
追加できるコードを探したいのですが・・・

>>388
 クラスA側で以下のように書いて、

 Intent obj_intent = new Intent(クラスA.this, クラスB.class);
 obj_tv = new クラスB(this, obj_intent);

 クラスB側のコンストラクタで以下のように受け取ればいいのでしょうか。

 public クラスB(Context context, Intent lo_int)

 書いててみましたが、lo_int の使い方がよくわかりませんでした。
 「lo_int.メソッド名」という書き方ではないんですね、googleでインスタンスやオブジェクトの受け渡し
について検索すると画面遷移の話ばかり出ており、私がやってるのと違うので余計にわからなくなりました。
 申し訳ありませんが、コード例を挙げて頂ければ有り難いのですが・・・


 387様、388様、アドバイスありがとうございます。
 私の理解が足りないばかりに、再質問の形になりまして申し訳ありません。

392:385
12/09/20 02:49:25.14
 すみません、>>385の書き込みでクラスAで訂正がありました。

public class クラスA extends Activity{
  private クラスB obj_tv1;
  private クラスB obj_tv2;
  private LinearLayout obj_LL;
  public void onCreate(Bundle savedInstanceState) {
    obj_tv1 = new クラスB(this);         ←※訂正
    obj_tv2 = new クラスB(this);         ←※訂正
    obj_LL = (LinearLayout)findViewById(R.id.xxxx);
    obj_LL.addView(obj_tv1);
    obj_LL.addView(obj_tv2);
  }
}

 クラスBのオブジェクトを2つ定義しているのに作成が1つで、なおかつ「obj_tv」となっており、
1と2の番号をつけ忘れてました。
 そして>>391の書き込みでも388様への返事で同様に番号をつけ忘れてました。

 お詫びと訂正を致します、申し訳ありません。

393:デフォルトの名無しさん
12/09/20 02:51:17.39
インスタンスとインテントを混同してるとかwwwww

394:デフォルトの名無しさん
12/09/20 03:18:33.78
>>392
さすがになんか本買って仕切り直したほうがいいよ
Javaもよく分かってないのに、場当たりでググったりコピペしてたりすりゃそりゃ破綻するって。。

ここで全部説明貰おうとするより100倍早いかと



395:デフォルトの名無しさん
12/09/20 07:55:26.06
質問させてください(_ _)
ウィジェットを作っているのですが
メモリ不足とかタスクキラーとかのアプリで
システムがとまっちゃって変数とかも初期化されちゃうんで
保持しておきたい変数とかはSharedPrefarenceで保持しておくようにしたんですが
これで保持される人もいれば
保持されない人もいちゃうようなんです。
SharedPrefarenceにおいてもタスクキラーとか端末によっては消えちゃうもんなんでしょうか
ウィジェットのアプリで変数の中身とかを保持しておく良い方法はないでしょうか

396:デフォルトの名無しさん
12/09/20 08:02:18.62
すいません、Sharedpreferenceです

397:デフォルトの名無しさん
12/09/20 09:05:04.19
>>395
聞いたこと無いが・・・
どこかで上書きしてないか?

398:デフォルトの名無しさん
12/09/20 09:19:50.53
SharedPreferenceはファイルだから普通は残るよ

399:デフォルトの名無しさん
12/09/20 09:42:07.71
>>385
private クラスA _classA;
public クラスB(Context context, AttributeSet attrs) {
  _classA = (クラスA)context;
}

public boolean onTouchEvent(MotionEvent event) {
  _classA.touchClassB();
}

android初心者というよりJavaも初心者みたいだから、
まずはJavaを勉強するところから始めた方がいいよ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch