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

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

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

※プログラミング自体が初めて!なあなたには↓↓↓こちらへ
スレ立てるまでもない質問はここで 118匹目
http://toro.2ch.net/test/read.cgi/tech/1331904826/
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プログラミング質問スレ Part19
http://toro.2ch.net/test/read.cgi/tech/1330147489/
0153デフォルトの名無しさん2012/03/23(金) 12:58:47.21
なんかあれだな
OSアップデートしたら動かなくなりました
なんてアプリが続出しそうだな。
ソース公開するのも良し悪しなのかもな
0154デフォルトの名無しさん2012/03/23(金) 13:12:40.15
>>152
できました。ありがとうございます。
0155デフォルトの名無しさん2012/03/23(金) 13:28:14.01
>>153
そうねカスタムダイアログで対応したほうがいいかも試練
0156デフォルトの名無しさん2012/03/23(金) 13:39:21.49
2Dイメージの描画はOpenGLとsurfaceviewの速度比はどれくらいですか?
やはりOpenGLの方がずっと速いですか?
0157デフォルトの名無しさん2012/03/23(金) 13:45:39.27
156に関連して、GalaxyNexusってSurfaceViewの描画が遅いってことないかな?
GLSurfaceViewにしないとダメ?
月々サポートがなければご愛顧割で買っちまうんだけどな…
0158デフォルトの名無しさん2012/03/23(金) 14:32:29.93
>>157
月々割ないでしょ?
0159デフォルトの名無しさん2012/03/23(金) 14:33:01.16
うわすまん何書いてんだ…
月々サポートが残ってるのか
0160デフォルトの名無しさん2012/03/23(金) 15:33:51.49
>>156
ちなみに
OpenGLでやる場合
円とかテキストとか書きたい場合どうするの?
0161デフォルトの名無しさん2012/03/23(金) 15:43:06.53
私に聞きますか。
円は描画できるようです。
文字は描画機能ないけど
ググったらめんどくさい手順ふんで表示する方法が出てきますよ。
でも確かに不便ですね。
0162デフォルトの名無しさん2012/03/23(金) 16:25:06.04
新しくてスペック高いからSurfaceViewも速いかって言うと、そうでもないんだよね。
前スレでGalaxy NexusでSurfaceView遅いって言ってる人いたよ。
0163デフォルトの名無しさん2012/03/23(金) 17:00:55.30
自分もGNでSurfaceView弄ってみたんだけど、HW acceralation をonにすると、drawBitmapみたいな単純な描画だけなら59fps行くのに、drawTextした途端に30fpsに制限された。
何かの条件を満たさないとフレームレートが半分に制限されるっぽかった。この条件が知りたいな
0164デフォルトの名無しさん2012/03/23(金) 17:17:01.89
あ、そっか。3.0からHW acceralationがあるんだね。
前スレの人はdrawBitmapでもっと遅い感じだったから、単に設定してなかったのかも。
0165デフォルトの名無しさん2012/03/23(金) 17:51:57.18
それって、3.0以降用とそれ以前用と、2つのapkを作れってことかね?
やってらんねー
0166デフォルトの名無しさん2012/03/23(金) 18:02:14.29
現実はもっとたくさんだよ
0167デフォルトの名無しさん2012/03/23(金) 18:12:18.08
>>131
いやいやバックグラウンドが一番いいよ
定期的にサービスで更新させてればいいだけじゃん
0168デフォルトの名無しさん2012/03/23(金) 18:30:26.22
drawTextとかHWアクセラレーションが利かない処理の典型じゃないか
利くのはプリミティブ描画とかbit blitくらいだろ
0169デフォルトの名無しさん2012/03/23(金) 18:32:54.54
漢字ROMさえのっていれば...
0170デフォルトの名無しさん2012/03/23(金) 19:03:30.56
Android4.0以上でウィジェット一覧に
自分のアプリのウィジェットが出てこないんだけど
何か特別に設定する所ある?
0171デフォルトの名無しさん2012/03/23(金) 19:31:13.49
>>163
テキストで30fpsに制限されるとか謎仕様はないぞw
2DでもOpenGL使ったほうがいいね。
0172デフォルトの名無しさん2012/03/23(金) 19:33:34.26
ソース引っ張ってnatibe_drawtext読んでも、中じゃfreetype使ってるだけだろうしな。
0173デフォルトの名無しさん2012/03/23(金) 19:36:20.44
>>131
「バックグランドで定期的にサービスで更新」自体、自分にとって高級な処理なんで
実装できるかわかりませんが、今週の土日でがんばってみます!
たくさんご意見頂きありがとうございました。
0174デフォルトの名無しさん2012/03/23(金) 19:47:15.41
ロゴが喋った…
0175デフォルトの名無しさん2012/03/23(金) 19:52:03.15
OpenGLって表示まで時間かからない?
本の通りだから延滞させるようなことはしてないと思うけど
0176デフォルトの名無しさん2012/03/23(金) 19:57:30.74
一つの情報源を鵜呑みにするとか
プログラム関わらず危険なことだぜ・・・
0177デフォルトの名無しさん2012/03/23(金) 20:02:41.75
それで結局SurfaceViewとOpenGLどっちが速いの?
0178デフォルトの名無しさん2012/03/23(金) 20:14:00.88
>>176
まあそうなんだけどさあ
セラミックデストロイヤーも表示に時間かかってるからもともと遅いのか自分がわるいのかわからないんだよ
0179デフォルトの名無しさん2012/03/23(金) 20:16:26.90
>>177
OpenGLのが速いけどアクションゲームとかでなければSurfaceViewでもそう気にするほどじゃないよ
0180デフォルトの名無しさん2012/03/23(金) 22:30:53.77
sdk17に変えたら立ち上がらなくなったからEclipse入れなおしてもなお解消しない('A`)
もうGoogleがIDE作れよ

MSはその辺りOSも言語も完璧なIDEも作れていてすごいよなあ
0181デフォルトの名無しさん2012/03/23(金) 22:36:51.63
JavaでIDE作るとか重すぎて終わってる
0182デフォルトの名無しさん2012/03/23(金) 22:37:56.30
不具合満載だけどね。
0183デフォルトの名無しさん2012/03/23(金) 22:50:25.55
>>180
どこが完璧なんだよwww
0184デフォルトの名無しさん2012/03/23(金) 22:50:59.67
お世話になっております。

res/drawable フォルダにある画像からBitmapRegionDecoderクラスのインスタンスをつくりたいんですが、
引数に画像のファイルパスを指定しろといわれて困っております。

static BitmapRegionDecoder newInstance(String pathName, boolean isShareable)

res/drawable フォルダにある画像のファイルパスって取得の方法をどなたかご存知でしたら教えてください。
0185デフォルトの名無しさん2012/03/23(金) 23:20:19.65
>>183
完璧には程遠くても会社でVisual Studio使ってるとJavaの数千倍快適だわ
0186デフォルトの名無しさん2012/03/23(金) 23:27:47.28
>>185
あの糞重いIDEが完璧だって?あんま笑わせんなよハゲw
0187デフォルトの名無しさん2012/03/23(金) 23:34:16.45
>>186
相当しょぼい端末使ってんじゃないの?
0188デフォルトの名無しさん2012/03/23(金) 23:57:20.90
今、必死になってandroidの開発しているんだが、
将来性はあるんだろうか・・・
0189デフォルトの名無しさん2012/03/24(土) 00:13:17.69
>>188
市場から読み取る感じでは正直びみょー。
今年はApple勢の方が勢いあるだろうね。

ただgoogleもandroidにコケられては自社の存続にかかわってくるわけだから
次々と改善していこうと必至に頑張り続けるさ
0190デフォルトの名無しさん2012/03/24(土) 00:14:35.04
それはだれにもわからない
0191デフォルトの名無しさん2012/03/24(土) 00:27:28.45

.───┐    ∠_      \L
 ̄ ̄ ̄| |     llヽ _|      ヽ  
      | |     |l ̄| |       l スマホのOSってドラえもんのいた未来ではどうなってんの?
      | |    /  ´\     /        
      | |     ヽ、_   `^イ          
二二二 」 _ __ lニ二二l、           ____
─┴┐ ⊆フ_)__./   ┌ヽ ヽ┐   /´       `\
二二二二二二l  /    |  |   | |.  /             ヽ
_l_____| /`ー─‐|_|   |_| /             ヽ
  |       /`ヽ__, ─ 、ノ |─l  l               l   
  |───/  /lニ/  /二ニluul.  |                 !   3つぐらいでお互いけなし合ってるよ
  |    ___| ̄ |  |  |_|.      l                /
 └─(    )(ニ|  ̄|./二ニ)     ヽ              /
      ̄ ̄  /   )            >━━━━━━ く
            `ー ´            /               ヽ
0192デフォルトの名無しさん2012/03/24(土) 00:29:40.18
PCもフリーソフトが溢れてシェアウェアなんてもう誰も使わないだろ
携帯界隈の将来も言わずもがな
0193デフォルトの名無しさん2012/03/24(土) 00:33:46.38
PCのソフトはダサさから抜け出せないけど
出先で片手で動くアプリは小道具としてクールな存在になってるよね
0194デフォルトの名無しさん2012/03/24(土) 00:33:55.09
あーやっとアプリ作り終わった
もこれで二度とandroid sdkとjavaには関わらなくて済むと思うと清々するわ
本当に糞みたいな開発環境でウンザリしたわ
0195デフォルトの名無しさん2012/03/24(土) 00:35:33.10
Windows Phoneみたいに恐ろしいほどアプリが作りやすければいいのにな
Googleってやる気なさ過ぎるよね
0196デフォルトの名無しさん2012/03/24(土) 00:40:55.31
wpは出遅れ過ぎてどうやっても勝ちはないだろさすがのM$も
0197デフォルトの名無しさん2012/03/24(土) 00:44:05.76
Win8で巻き返しがあるかもよ
0198デフォルトの名無しさん2012/03/24(土) 00:45:25.08
正直AndroidってGoogleという圧倒的な後ろ盾があるから支持されているだけ
世界のエンジニアの心は離れ始めているんだよな
0199デフォルトの名無しさん2012/03/24(土) 00:49:20.69
>>196
ってか法人需要舐めすぎ
工場のオペレーションとか、港湾でクレーンの操作とか、ビル建設の重機、物流センターでフォークリフトのオペレーション、宅配業者のハンドヘルド
こういうのやったことある?コンピューターって必ずしも机の上にあってマウスとキーボードが付いている訳じゃないんだよ
その市場で圧倒的絶対的なシェアを誇るOSは何か知っている?
0200デフォルトの名無しさん2012/03/24(土) 00:53:30.90
スレ違い死ね嵐
0201デフォルトの名無しさん2012/03/24(土) 00:57:52.01
強がりも大概にしろ
お前らだって本当は気付いているはず
Androidは優秀なOSではないと
0202デフォルトの名無しさん2012/03/24(土) 00:58:57.90
ただたんにシェアが圧倒的だから
世の中を見渡せばAndroidスマフォかiPhoneだらけ
だからAndroidに追従しているだけ、違うか?
0203デフォルトの名無しさん2012/03/24(土) 01:01:49.44
一匹強烈なドロイド叩きのM犬が紛れ込んでるな
0204デフォルトの名無しさん2012/03/24(土) 01:13:23.96
Androidの互換性問題はMonoを使えば大半は解決するんだけどね
http://anago.2ch.net/test/read.cgi/bizplus/1332443259/43
0205デフォルトの名無しさん2012/03/24(土) 01:18:08.39
Androidの非互換って、だいたいハード固有のとこだと思うんだけど
そんなのmonoで開発するだけで解消できんの
0206デフォルトの名無しさん2012/03/24(土) 01:22:42.75
愚痴はよそでやれ
0207デフォルトの名無しさん2012/03/24(土) 01:33:07.61
愚痴ではなく啓蒙
0208デフォルトの名無しさん2012/03/24(土) 01:35:16.95
OpenGL使う上で互換性の問題に関わりあう部分何かある?
0209デフォルトの名無しさん2012/03/24(土) 01:36:14.36
SoCの違いでAPI挙動が違う
まじでビビった
0210デフォルトの名無しさん2012/03/24(土) 02:11:03.34
>>208
テクスチャサイズ、ビデオメモリサイズ、拡張機能、シェーダ、仕様準拠レベル、・・・
0211デフォルトの名無しさん2012/03/24(土) 02:17:20.83
もう1年以上仕事でAndroidアプリ作っている俺様が来ましたよ

俺はそろそろ
死ねこのクソOS
って叫んでも許されると思うんだ…
0212デフォルトの名無しさん2012/03/24(土) 02:22:32.05
一年も食わせてもらってありがとうございますだろ
0213デフォルトの名無しさん2012/03/24(土) 02:30:10.76
まったくだ。俺なんて去年は1クールごとに現場と言語が変わってるってのに
0214デフォルトの名無しさん2012/03/24(土) 02:40:27.99
sdkバージョンアップしたら、xmlエディタで、android:って打っても補完されなくなっちゃったんだけど、どこかにスイッチがあるのかな?
javaファイルでは補完されます。
0215デフォルトの名無しさん2012/03/24(土) 04:31:04.46
おっさん臭い
0216デフォルトの名無しさん2012/03/24(土) 09:05:59.84
他アプリ上でタッチイベントを強制的に実行させることは可能?

リファレンスのTouchUtilsクラスあたりを見てるんだが
むりっぽいかな
0217デフォルトの名無しさん2012/03/24(土) 10:05:38.97
トロイくせー
0218デフォルトの名無しさん2012/03/24(土) 11:12:29.09
たった1年?cupcakeの頃からやってるよ
0219デフォルトの名無しさん2012/03/24(土) 11:23:22.09
iOSできるヤツは腐るほどいるけど
Androidまともにできるヤツ少なくて助かるわ
0220デフォルトの名無しさん2012/03/24(土) 11:43:42.16
※ただしこのスレに限る
0221デフォルトの名無しさん2012/03/24(土) 13:52:09.19
↑そんなに自己紹介したかったのか?
0222デフォルトの名無しさん2012/03/24(土) 14:12:14.16
ArrayAdapter<String>から項目を削除するにはどうすれば良いですか?
removeメソッドを使うと同じ文字列があった場合、
最初に追加されたのが削除されるんですが。
0223デフォルトの名無しさん2012/03/24(土) 14:17:23.56
clearして最初から入れ直すしかないんじゃない
0224デフォルトの名無しさん2012/03/24(土) 14:30:46.65
それも良いですが
同じ文字列がArrayAdapterに追加されないように検討してみようと思います。
ありがとうございました。
0225デフォルトの名無しさん2012/03/24(土) 15:20:00.08
ArrayAdapterってMS系のDataSourceみたいなもんか
何かと思った
コンストラクタにコンテキストとかリソースIDとか指定しなきゃいけないってなんかこのクラス責務間違ってね?
0226デフォルトの名無しさん2012/03/24(土) 16:09:21.68
基本の Adapter 自体はそれほどおかしくない
モデルクラスからデータを引っ張ってきて各項目表示用のビューを作成し、それを ListView とかに提供する、純粋なインタフェースだ
モデルクラスとビュークラスの間をつなぐアダプタというわけだ
そこに、便利だからとリソースIDだけ指定すればビューの作成を自動的にやってくれるようにしたり、
便利だからとついでにモデル機能までくっつけちゃったものが、 ArrayAdapter
0227デフォルトの名無しさん2012/03/24(土) 16:32:44.30
ボタンやテキストビューが設置されたXMLをLayoutInflaterとAlertDialog.Builderを用いて
ダイアログの中に表示する場合、そのボタンやテキストビューはどんな名前にインスタンス化されてるんですか?

例えば、test.xmlというXMLの中のTextViewは、
TextView t = (TextView) findViewById(R.id.textView1);と書けば
tという名前でインスタンス化されますよね?

でもこんな風にXMLからダイアログの中に作った場合、
Textviewはどういう名前でインスタンス化されてるんですか?
LayoutInflater f = LayoutInflater.from(this);
final View test = f.inflate(R.layout.test, null);
AlertDialog.Builder b = new AlertDialog.Builder(this);
b.setView(test);

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
</LinearLayout>
0228デフォルトの名無しさん2012/03/24(土) 16:38:35.55
名前はあなたが付けるものであって、自動的に付くものじゃない
好きな名前を付ければいい
0229デフォルトの名無しさん2012/03/24(土) 16:42:09.63
>>222
setに入れて、再度入れ直せない?
0230デフォルトの名無しさん2012/03/24(土) 16:42:26.11
>>227
View manko = test.findViewById(R.id.textView1);
02312272012/03/24(土) 16:46:26.74
最終的に何が言いたいかと言いますと、ボタンやテキストビューなどの部品単体でなく、
XMLごとまるごとsetViewでダイアログにのっける場合、
そこからのボタンやテキストビューをどうやってプログラムの方でアクセスするのかってことです・・・。

>>228
>>230
つまり、インスタンス化されてなかったってことなんですね?
てっきり、LayoutInflaterとsetView()の時点で自動的にインスタンス化されていると思ってました

それでやってみます
ありがとうございました。
0232デフォルトの名無しさん2012/03/24(土) 16:51:51.03
質問です。Activityを取得するにはどうしたらいいんでしょうか?

というのもsetTitle("タイトル");を使いたいときに
かっこよくActivity.setTitle("タイトル");みたいに書いてみたいんですが
thisだとContextになってしまいますよね
かといって自分のクラス名を使って
MyActivity.setTitle("タイトル");
ってやってもうまくいかないです。

ContextはActivityの一部(Activity.Context)っぽいんですが
どうすればいいんでしょうか・・・
0233デフォルトの名無しさん2012/03/24(土) 16:55:25.40
> thisだとContextになってしまいますよね

thisはActivityじゃないの?
0234デフォルトの名無しさん2012/03/24(土) 17:00:23.63
何がしたいのかもうちょっとわかりやすく書いてくれないと
0235デフォルトの名無しさん2012/03/24(土) 17:08:54.48
かっこよくってのがよくわかんないけど、staticメソッドを使いたいってこと?
0236デフォルトの名無しさん2012/03/24(土) 17:51:07.15
>>233-235
分かりにくくてすみません。
単にsetTitle("")を○○.setTitle("")って表記したかったんですが
onCreate内部のbuttonのリスナー関数の設定で
button.setOnClickListener(new OnClickListener() {
  public void onClick(View v) {
    this.setTitle("test");
  }
}
とすると
The method setTitle(String) is undefined for the type new View.OnClickListener(){}
というエラーがEclipseで表示されてしまうので他にも色々試したところ

setTitle("test"); → ○
this.setTitle("test"); → ×
(onCreateでContext con = this;)→ con.setTitle("test"); → ×
    The method setTitle(String) is undefined for the type Context
(Activity名がMyActivity)→ MyActivity.setTitle("test"); → ×
    Cannot make a static reference to the non-static method setTitle(CharSequence) from the type Activity
となってじゃあこのsetTitle("")って何のsetTitleなんだろうと思ったので質問しました。

>>233に言われてみて
(onCreateでActivity con = this;)→ con.setTitle("test"); → ○
で動作しました。

仮にonCreate内で変数にthisを入れなかった場合、
○○.setTitle("test");に入る正しい○○は何になるんでしょうか?
0237デフォルトの名無しさん2012/03/24(土) 18:05:06.16
MyActivity.this.setTitle("test");
0238デフォルトの名無しさん2012/03/24(土) 18:06:01.80
MyActivity.this
0239デフォルトの名無しさん2012/03/24(土) 18:11:09.98
Java初心者スレみたいなところと使い分けるといいかも
0240デフォルトの名無しさん2012/03/24(土) 18:15:35.71
>>237-239

どうもありがとうございました。
Activity.thisなんてあるんですね・・・。
また調べてみます。

Javaスレも見てるんですがActivityってandroidの方かなぁと思ってこっちで聞きました。
0241デフォルトの名無しさん2012/03/24(土) 19:09:53.05
>>240
[Class名].this
はjavaの基本
0242デフォルトの名無しさん2012/03/24(土) 19:23:23.19
AndroidやりだしてJavaの書き方が汚くなった気がする
SetterGetterを作らなくなったz!
0243デフォルトの名無しさん2012/03/24(土) 19:26:05.30
俺も知らないでいちいち無名クラスで処理するときのためにActivityの変数とか作ってたわ
超勉強になったありがとう愛してるよ(^з^)-☆
0244デフォルトの名無しさん2012/03/24(土) 19:49:20.86
なんでthis.XXXで参照できないの?
内部でダイアモンド継承みたいな不具合の起こちゃってる言語なのjavaは?
0245デフォルトの名無しさん2012/03/24(土) 19:54:53.14
OnClickListener の中で this っていったら
その this は OnClickListener のことだから
0246デフォルトの名無しさん2012/03/24(土) 20:00:51.78
C#のプロパティを知ったらgettersetterはアホらしくなったな
0247デフォルトの名無しさん2012/03/24(土) 20:06:26.71
また例の流れですか
0248デフォルトの名無しさん2012/03/24(土) 20:08:53.11
C#に羨望抱いても仕方ないだろ
java使えし
0249デフォルトの名無しさん2012/03/24(土) 20:24:13.08
ネイティブ開発最強のDelphiと、マネージド開発最強のC#を生み出した
ヘルスバーグをGoogleが引き抜けばいいのに
0250デフォルトの名無しさん2012/03/24(土) 20:35:27.71
>>243
俺もだ。
Java自体もちゃんと勉強しないとね。
0251デフォルトの名無しさん2012/03/24(土) 21:06:41.22
もしかして、別クラスの関数とかに引数でApplicationのcontextを渡さなくても
関数内で
[Class名].this.getApplicationContext()
で取得できるってこと?
0252デフォルトの名無しさん2012/03/24(土) 21:10:29.27
>>251
>>239
■ このスレッドは過去ログ倉庫に格納されています