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

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

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん2012/02/25(土) 14:24:49.22
このスレではAndroidSDK・NDKやAndroidマーケットに関する質問を扱ってます。

※プログラミング自体が初めて!なあなたには↓↓↓こちらへ
スレ立てるまでもない質問はここで
http://toro.2ch.net/test/read.cgi/tech/1328439334/
Eclipse統合M32【Java/C++/Ruby/Python/Perl】
http://toro.2ch.net/test/read.cgi/tech/1320318310/
★★Java質問・相談スレッド152★★
http://toro.2ch.net/test/read.cgi/tech/1329715551/

****関連リンク****
■ Android developers http://developer.android.com/
■ ソフトウェア技術ドキュメントを勝手に翻訳 http://www.techdoctranslator.com/


****前スレ****
Androidプログラミング質問スレ Part18
http://toro.2ch.net/test/read.cgi/tech/1328441261/
0809デフォルトの名無しさん2012/03/15(木) 02:04:55.56
すいません。
n.icon設定シてなかっただけでした。
結構細かいですね
0810デフォルトの名無しさん2012/03/15(木) 02:05:49.75
>>808
確かNotificationのiconプロパティが指定必須だったと思う。
それにnotifyの第一引数はR.string.xxxx定数の値じゃないとだめなんじゃないか?
0811デフォルトの名無しさん2012/03/15(木) 02:44:49.58
>>802
ありがとうございました!
先ほどやってみたら取得できました!
これで我がTaskKillerは無敵
0812デフォルトの名無しさん2012/03/15(木) 03:33:40.26
viewpagerでoverScrollを実装したいんですが、どうやれば良いですか?

os target version2.3にしています
viewpagerを継承したクラスで、overScrollByをオーバーライドしましたが、ダメでした。
viewpagerのonTouchEventでoverScrollByが呼ばれていないのが原因みたいです。

よろしくお願いします
0813デフォルトの名無しさん2012/03/15(木) 08:19:55.75
Eclipseからエミュレータを通じてテストしていると、エミュレータを終了させてもjavaw.exeがメモリから解放されず残っていたり、
直前の反映が反映されてない古いバージョンが起動していたりするんですが、私の環境が悪いんですか?

Win7 64bitとかの標準的な構成ですが
0814デフォルトの名無しさん2012/03/15(木) 09:19:40.33
>>797
そうですか、助力にすらなれず申し訳ない。
0815デフォルトの名無しさん2012/03/15(木) 12:41:54.86
モニタの物理的なサイズ(ピクセルじゃなくて、何センチとか)を知りたいのですが。

自前で描画してる文字やボタンの大きさを決める時の判定に使いたいのです。

最近の端末は1280とかで4〜5インチとか、画素が細か過ぎ…
0816デフォルトの名無しさん2012/03/15(木) 12:46:11.84
android ディスプレイサイズの取得
http://blog.goo.ne.jp/ishiman_co_ltd/e/dec6284037c8a0f8318e5fda84d7d669
これで出せるんじゃまいか
08178152012/03/15(木) 12:57:56.14
>>816
どうもありがとうございます
0818デフォルトの名無しさん2012/03/15(木) 13:33:06.70
他のアプリが音楽流してるかって判定できないんですか?
0819デフォルトの名無しさん2012/03/15(木) 13:56:30.46
BitmapDrawable(Bitmap bitmap)
がデュプリケートされてるんだけど、どれ使えばいいの?
0820デフォルトの名無しさん2012/03/15(木) 15:34:51.55
>>819
リファレンス見れば
> This constructor is deprecated. Use BitmapDrawable(Resources, Bitmap)
と書いてあるじゃまいか
0821デフォルトの名無しさん2012/03/15(木) 15:52:51.84
>>820
あ・・・・・・れ・・・・・・・・・
ありがとうございました
0822デフォルトの名無しさん2012/03/15(木) 18:17:47.91
悪い、質問させてくれ。

現在接続されているBluetooth機器のアドレスを取得する方法を教えてくれ。
08238222012/03/15(木) 18:19:09.79
書き忘れた。Bluetooth機器のプロファイルはHIDだ。
0824デフォルトの名無しさん2012/03/15(木) 20:20:13.89
Notificationをステータスバーに表示させてそこからIntent()させてるのですが
その後も表示が残ったままです。これは通知を消去するか、Intent()先で
cancel()するしかないのでしょうか??
0825デフォルトの名無しさん2012/03/15(木) 21:10:56.36
>>824
notification.flags |= Notification.FLAG_AUTO_CANCEL
だった気がする
0826デフォルトの名無しさん2012/03/16(金) 00:16:59.85
クラスAからクラスBの関数を呼ぼうとするとエラーが出ます

public class ClassA extends Activity{
ClassB classb;
----
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
classb.touch(event);
return false;
}
----
}

public class ClassB extends GLSurfaceView{
----

public boolean touch(MotionEvent event) {
//処理
}
----
}

ソースはこんな感じです
JAVAは初めてなのでなぜ無理なのかわかりません
0827デフォルトの名無しさん2012/03/16(金) 00:19:51.33
>>826
まず、ClassBのインスタンスを生成していないような...。

Javaが初めてなら、Androidでなく、Javaの勉強からやった方がいい。
0828デフォルトの名無しさん2012/03/16(金) 00:19:53.98
>>826
classbがnullだからだろ
Javaだからってレベルじゃないと思うが
0829デフォルトの名無しさん2012/03/16(金) 00:27:20.36
中途半端にC++の知識有ると
Javaはプリミティブ型以外にインスタンス変数は宣言できない所に引っかかるよね。

プリミティブ型の代用クラスのStringとかIntegerの動作が特にJava初心者には
混乱を招く原因かも知れない。
0830デフォルトの名無しさん2012/03/16(金) 00:35:00.46
>>827
>>828
ありがとうございます
ClassB classb = new ClassB;
こうしたら出来ました

classを使わないといけない言語が初めてだったんでわかりませんでした
0831デフォルトの名無しさん2012/03/16(金) 00:40:47.06
できるわけない
0832デフォルトの名無しさん2012/03/16(金) 00:49:26.30
>>831
ClassB classb;
--onCreate--
classb = new ClassB(this);
----
でした
0833デフォルトの名無しさん2012/03/16(金) 00:52:09.03
とりあえず、「オブジェクト思考」について、勉強したほうがいいかも。
0834デフォルトの名無しさん2012/03/16(金) 00:52:58.16
指向の間違い!
0835デフォルトの名無しさん2012/03/16(金) 01:33:49.69
ぬるぽ!
0836デフォルトの名無しさん2012/03/16(金) 01:37:47.15
思考でもあながち間違ってない
0837デフォルトの名無しさん2012/03/16(金) 02:32:39.20
オブジェクト嗜好
0838デフォルトの名無しさん2012/03/16(金) 02:49:02.24
android 4.0.3 に 2.3.3では文句いわず動作してるapkぶっこんだら
strict modeでblock云々と言われてうごかねえ。
通信部分を別スレに書き直すしかないのか?
0839デフォルトの名無しさん2012/03/16(金) 08:22:09.72
フリックとスクロールは同時(スクロール中にフリック)に取得できますか?
0840デフォルトの名無しさん2012/03/16(金) 10:09:45.59
フリックの瞬間には指離してるんだから
スクロールにならないじゃん
0841デフォルトの名無しさん2012/03/16(金) 11:11:42.90
>>839
指を離しているオートスクロール中の事なら可能。
0842デフォルトの名無しさん2012/03/16(金) 11:21:11.02
スレの祭りチェックウィジェット作ったんですけど、
どこか野良apkを試してくれるとこないでしょうか??
0843デフォルトの名無しさん2012/03/16(金) 12:14:47.74
オブジェクト指向が好きならオブジェクト嗜好だなって考えるのがオブジェクト思考
0844デフォルトの名無しさん2012/03/16(金) 12:24:07.80
>>842
後半意味不明
0845デフォルトの名無しさん2012/03/16(金) 12:54:55.82
>>840-841

マルチタッチみたいなやり方で出来るかと思って
0846デフォルトの名無しさん2012/03/16(金) 14:15:44.84
>>845
左右で縦横無尽にグリグリ動かしたいなら
座標とアクションを取るしかない
リストビューも左右の遷移も自作する必要があるが出来るか出来ないかで言えば出来る。
0847デフォルトの名無しさん2012/03/16(金) 14:16:59.79
え、リストビューのスクロールって自作onTouchで同じぐらいの制御できるんか
0848デフォルトの名無しさん2012/03/16(金) 18:53:40.36
>>845
フリックはいつでも取得できる
ムーブもいつでも取得できる

そして
スクロールは入力に関係ない表示の話だからスクロールと同時取得できるかっていう質問はよくわからない
0849デフォルトの名無しさん2012/03/16(金) 20:11:16.94
>>848
それがしたいです

onFlingと同じところにonScrollがあったのでスクロールとフリックで例えてました

参考になるサイトまたはやり方を教えて下さい
0850デフォルトの名無しさん2012/03/16(金) 20:12:01.07
>>849
それとはフリックとmoveの同時取得です
0851デフォルトの名無しさん2012/03/16(金) 20:22:02.59
妻夫木みたいにしてくれ
って言ったら
妻夫木って誰ですか?
だってさ。時代の流れを感じたわ
0852デフォルトの名無しさん2012/03/16(金) 20:22:22.20
ごばーく
0853デフォルトの名無しさん2012/03/16(金) 21:36:31.40
妻
っ
妻
だ
0854デフォルトの名無しさん2012/03/16(金) 23:34:47.07
SimpleOnGestureListenerをマルチタッチ対応にできせんか?

2タッチ目からの反応のさせ方がわかりません
0855デフォルトの名無しさん2012/03/17(土) 00:39:14.71
>>812
どなたか分かる方いませんか?
お願いします。
0856デフォルトの名無しさん2012/03/17(土) 03:34:49.55
何がしたくて何が駄目だったのかわからんからどうしようもない
0857デフォルトの名無しさん2012/03/17(土) 13:03:56.96
>>847
等加速度運動を自前で計算すればできるよ
0858デフォルトの名無しさん2012/03/17(土) 14:04:15.95
HT-03Aのころ、確か1.6向けに作ったapkなんですが、
これをGalaxy Nexusにインストールしようとしても「ファイルを開けません」と出てしまいます。

Galaxy S(2.3)では特に問題なく使用できていたのですが、
4から(3から?)何か仕様に変更などあったのでしょうか?
0859デフォルトの名無しさん2012/03/17(土) 14:42:12.56
ダイアログに配置したボタン全てにリスナーをつけたいんですが、
現状は、findViewById() で1つづつ取り出して、リスナーを登録しています。

特に困ってはいないのですが、
もうすこしエレガントにやる方法ってありますでしょうか?


0860デフォルトの名無しさん2012/03/17(土) 14:53:48.62
純白のタキシードを着てプログラミングする
0861デフォルトの名無しさん2012/03/17(土) 15:43:27.78
タキシードを買うお金がありません、
お金のかからない方法でお願いします。
0862デフォルトの名無しさん2012/03/17(土) 16:29:12.15
>>861
Enter キーをターーーーーーン!
0863デフォルトの名無しさん2012/03/17(土) 16:50:40.39
>>859
あるよー
ベッキーだよー
0864デフォルトの名無しさん2012/03/17(土) 17:00:44.07
プログラ初心者でエミュレータ使って実行してるんですけど、エミュ重くて辛いです。
それでエミュの代わりにAndroidタブレット繋いで実行したりしたいんですが、、、できますかね?(実機は買う金ない
0865デフォルトの名無しさん2012/03/17(土) 17:03:42.81
実機じゃないAndroidタブレットって何それこわい
0866デフォルトの名無しさん2012/03/17(土) 17:28:45.96
華麗に間違えましたね()。スマホは高いっす
0867デフォルトの名無しさん2012/03/17(土) 17:45:06.21
>>864
ADKManagerでUSBドライバ落として繋ぐ
0868デフォルトの名無しさん2012/03/17(土) 18:09:38.00
タブレット端末でもデバッグ出来ますか?
ってことなら当然出来ます

白ロムの端末とかでもいいと思うけどねー
0869デフォルトの名無しさん2012/03/17(土) 18:18:30.87
うふふ、ローラだよ☆うふふ
0870デフォルトの名無しさん2012/03/17(土) 18:41:37.54
>>859
xmlで書いとけばいい
android:onClick="onClick"
0871デフォルトの名無しさん2012/03/17(土) 19:30:43.19
>>870
え!そんな技が!
調べてみます、ありがとうございます。
0872デフォルトの名無しさん2012/03/17(土) 19:57:11.77
必ずしもエレガントではないと思うがな。
0873デフォルトの名無しさん2012/03/17(土) 20:05:09.39
がなー
0874デフォルトの名無しさん2012/03/17(土) 21:58:44.07
アプリが起動したときに一回だけ実行したい初期化処理があって Activity のonCreate の中で
行っているのですが、画面が回転したときにもonCreate が呼ばれて初期化処理が行われて
しまいます。

それで下のようにフラグをもって最初のonCreateかどうか判定するようにしました。
うまく動いているようにみえます。

private static boolean firstCreate = true;

public void onCreate() {
 if (firstCreate) {
  firstCreate = false;
  ・・・初期化処理
 }
}

ですが、今日、本屋でandroidの本をパラパラと立ち読みしてたら、画面が回転すると
インスタンスが再構築されるようなことが書いてありました。
onCreate()が呼ばれるだけではなくて、Activity のインスタンスが作り直されるとしたら
上のコードように、フラグをもつ方式はなりたたなくなります。
現状は、たまたま動いてるだけで、こういうやり方はまずいんでしょうか?
0875デフォルトの名無しさん2012/03/17(土) 22:16:28.83
ここら辺を参考にするといいよ
ttp://y-anz-m.blogspot.jp/2010/10/androidconfiguration-change.html
ttp://d.hatena.ne.jp/hyoromo/20090712/1247385249
0876デフォルトの名無しさん2012/03/17(土) 22:18:51.26
static 変数はインスタンスに関連付かないのでインスタンスが作り直されても失われない
0877デフォルトの名無しさん2012/03/17(土) 22:20:02.45
アプリ起動時に1回だけ行うなら
ActivityのonCreateじゃなくてApplicationクラスのonCreateがいいと思うょ
0878デフォルトの名無しさん2012/03/17(土) 22:25:19.45
Toastをカスタマイズしているんですが文字や画像が端から端までなくても端から端まで広げることは可能ですか?
0879デフォルトの名無しさん2012/03/17(土) 22:29:24.98
Toast.setView()
0880デフォルトの名無しさん2012/03/17(土) 22:38:30.02
>>874
いずれにせよ、そんなとこにstatic変数持たすなよ、と思う
0881デフォルトの名無しさん2012/03/17(土) 23:02:42.41
プロセスが作り直されるわけじゃないんだからsingletonしとけばいいよ
0882デフォルトの名無しさん2012/03/17(土) 23:58:48.61
>>879
レイアウトってことですか?

そうであればこんな感じにしてます
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dip"
android:background="#cc000000"
>

<ImageView
android:id="@+id/image"
android:layout_width="48px"
android:layout_height="48px" />

<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="center"
android:textColor="#ffffff" />

</LinearLayout>
0883デフォルトの名無しさん2012/03/18(日) 00:12:08.07
// 画面幅とってくる
WindowManager wm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);
Display disp = wm.getDefaultDisplay();
int width = disp.getWidth();

// Viewに画面幅セット
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.hogehoge, null);
layout.setWidth(width);

Toast toast = new Toast(context);
toast.setView(layout);

試してないので動くかは知らん
0884デフォルトの名無しさん2012/03/18(日) 00:20:11.21
ただのViewにsetWidthなんて便利なメソッドなかったかもすまんこ
まぁやりたいことは伝わったかな
0885デフォルトの名無しさん2012/03/18(日) 00:53:50.99
>>884
ありがとうございます

やりたいことはわかりましたがsetWidthのようなものが見当たらず
layout.setMinimumWidth(width);
も試しましたができませんでした
なにかいい方法を思いついたら教えて下さい
0886デフォルトの名無しさん2012/03/18(日) 00:54:52.94
TextviewのGravityプロパティですが、center_verticalは機能しないのに、centerは機能します
なぜでしょうか?
親はorientationがverticalのRelativeLayoutで、親のGravityは2つとも設定してません
0887デフォルトの名無しさん2012/03/18(日) 01:21:52.26

--------------
// 画面幅とってくる
// 略

// ルートになるレイアウトをFrameLayoutにするよ
FrameLayout frame = new FrameLayout(context);

// 大きさを変化させるための層を作るよ
LinearLayout backgroundLayer = new LinearLayout(context);
View setWidthView = new View(context);
backgroundLayer.addView(setWidthView, new
LinearLayout.LayoutParam(width,
LinearLayout.LayoutParam.WRAP_CONTENT));
frame.addView(backgroundLayer);

// 表示したいViewを作るよ
LinearLayout foregroundLayer = new LinearLayout(context);
// TODO:表示したいImageViewとかを追加する
// 重ねてあげるよ
frame.addView(foregroundLayer);

Toast toast = new Toast(context);
toast.setView(frame);

あとはBitmap生成してsetWidthして
ImageViewにsetImageBitmapする方法とか

要は見えないView生成してそいつで大きさをしていすればいいんしゃないかなー

どうみてもスマートじゃないし力技だけどね☆ミ
0888デフォルトの名無しさん2012/03/18(日) 02:40:20.54
>>886
良くわかんないけど、orientationがverticalだからcenter_verticalが効かないとか?

っていうかlayout_gravityとgravityってプロパティがあるけど、
gravityの方であってるん?

そしてこの二つの使い分けっていうか意味は理解しておりますかね。
俺、最近知ってふぉぉぉって叫んでたんだけどw

パディングとマージンも未だに迷うんだぜ…
0889デフォルトの名無しさん2012/03/18(日) 07:57:31.40
>>886
よく分からんけど、TextViewのbackgroundに色つけてみたら何か分からないかな

>>888
layout_marginとpaddingな。
なぜ前者にはlayoutが付いて後者には付かないか理解すれば二度と間違わなくなる。
08908862012/03/18(日) 12:06:00.98
>>888
親のorientationを外してみても解決しないです・・・

android:layout_gravityは自分の重力
android:gravityは自分の中の子の重力

みたいですね。両方ともにためしてみても一向に真ん中にいかないんです。

<RelativeLayout
  android:orientation="vertical" >
  <Button />
  <Button />
  <Button />
  <Button />
  <TextView />
</RelativeLayout>


これでここのTextViewを縦方向の真ん中に持っていきたいのですが・・・


>>889
色つけてみました
こうすると確かにグラフィックレイアウト画面でどこに表示されてるかわかりやすくなりますが
依然と問題解決しないです・・・
0891デフォルトの名無しさん2012/03/18(日) 12:31:30.20
>>890
多分俺じゃ答えられないから余計なお世話かもしれないけども。

こういう風に並んでほしかった(理想)
↓
こう書いた
↓
こうなっちゃう(現実)

が図で表されないと、何が問題なのか良く分からないっす。

[Button]+-----+
[Button]| Text |
[Button]| Text |
[Button]+---- +

とか

[Button]
[Button]
[Text]
[Button]
[Button]

とか、適当な図で良いので…
08928862012/03/18(日) 13:34:55.62
大変失礼しました。

RelativeLayoutの中に複数のテキストビューを設置する。
上半分のTextViewはlayout_alignParentRight等で配置し、
Large Textは、水平方向・垂直方向の真ん中(center)に配置したかったのです。

理想
┌──────────┐
│[TextView] [TextView]. │
│[TextView]        │
│               │
│    [LargeText]    │
│               │
│               │
│               │
└──────────┘

現実・・・LargeTextが垂直方向で真ん中に設置されない。
┌──────────┐
│[TextV[LargeText]iew] │
│[TextView]        │
│               │
│               │
│               │
│               │
│               │
└──────────┘

LargeTextのGravityプロパティは、LargeTextの中のテキストの位置を変化させるだけであり、
Layout_gravityはそもそもLargeTextには存在しないプロパティだったのでいじっても意味なし・・・だったのですが、原因わかりました。
Layout_center_verticalをtrueにすればいいらしいです。というわけで私の知識不足なだけでした。
あと、backgroudに色をつけるというアドバイス、非常に役に立ちました。皆さんありがとうございました。
0893デフォルトの名無しさん2012/03/18(日) 14:56:08.19
ウィジェットの設定用Activityを操作してるとき、TIME_TICKで
サービスが起動すると、Activity動作が固まってしまいます。
それでもタップしていると強制終了か待機か訊いてきます。
どうして固まるんでしょうか
0894デフォルトの名無しさん2012/03/18(日) 15:19:30.06
サービスが固まっているのでは
0895デフォルトの名無しさん2012/03/18(日) 15:23:54.37
>>894
サービスで通信するんですが、その間はActivity画面も固まってしまって。
そうならないようにしたいのですが
0896デフォルトの名無しさん2012/03/18(日) 15:24:18.50
メインスレッドで通信してはいけない
0897デフォルトの名無しさん2012/03/18(日) 15:36:56.11
RelativeLayoutにorientationの指定なんて無いんだけど…
0898デフォルトの名無しさん2012/03/18(日) 17:00:51.34
>>887
ありがとうございます

LinearLayout.LayoutParam(width,で
LinearLayout.LayoutParam を型に解決できません

とでます
0899デフォルトの名無しさん2012/03/18(日) 17:19:28.04
>>898
LinearLayout.LayoutParamsで出来ました
0900デフォルトの名無しさん2012/03/18(日) 17:23:31.47
>>896
ありがとう
0901デフォルトの名無しさん2012/03/18(日) 18:05:01.68
onClickとonTouchイベントってどう違うんですか?
0902デフォルトの名無しさん2012/03/18(日) 18:14:59.99
>>901
clickはclick出来るものだけなんじゃね
0903デフォルトの名無しさん2012/03/18(日) 18:15:54.27
するとボタン限定なのかもしれませんが、ではボタンに触ったとき ClickとTouchのどっちが判定されるか分からないのです
0904デフォルトの名無しさん2012/03/18(日) 18:16:40.91
タッチ以外の方法でボタンをクリックしたときとか
例えばキーボード繋いでEnterキー押すとか
0905デフォルトの名無しさん2012/03/18(日) 18:22:18.11
>>903
いや、Touchは触れた時点、離した時点それぞれで判定なかったっけ?
clickは押して離すまでの一連の動作がセットで判定されるでしょ。
0906デフォルトの名無しさん2012/03/18(日) 18:42:55.53
Buttonビューとかの上だとonclickだけでontoucheventはでないんじゃなかったっけ
0907デフォルトの名無しさん2012/03/18(日) 18:46:40.08
食卓に欠かせない存在って言えばやはり塩と醤油ですよね。「あれ?これ味薄くない?」「これ味違くない?」
という言葉を言い出せない僕らにとって無くてはならないアイテムです。もちろんこの醤油的存在はアジア圏を
中心に大活躍しているわけですが、昨日のコンビニ弁当と学校給食に続き、お隣韓国の醤油工場をご紹介です。
しかも摘発された工場です。

無許可で経営していたとの理由で摘発された韓国醤油「魚醤(エクジョッ)」製造工場なのですが…。

http://spytune.net/wp-content/uploads/2012/03/uji.jpg

ウジ虫が主原料になっちゃってるぅぅぅぅ!!!!

これ無許可の前に食品衛生法違反で逮捕して!ちなみに観光客や市民に向けて出荷されていたそうです…。

http://spytune.net/?p=450

0908デフォルトの名無しさん2012/03/18(日) 18:54:02.44
>>904-906
ありがとうございます
レス数が900を超えています。1000を超えると表示できなくなるよ。