サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
おみそ汁
shinbashi.hatenablog.com
androidアプリを作る際にWebViewを組み込んでアプリ内ブラウザで表示することとかよくあると思います。 そんな時にWebページの中にhoge://hugahugaみたいなURIが出てきた場合は、大体shouldOverrideUrlLoading内に @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { Uri uri = Uri.parse(url); String scheme = uri.getScheme(); if (scheme.indexOf("http") != 0) { Uri intent_uri = Uri.parse(url); Intent intent = new Intent(Intent.ACTION_VIEW, intent_uri); activ
条件振り分けで取得方法を変える getContentResolver().insert()を使わない。MediaScannerConnection等を使って標準ギャラリーには反映させる。 そんな訳で、上記の具体的な解決方法を書く。 まず、getContentResolver()を使わないので、別の方法でカメラの保存先を取得する。 public class CameraActivity extends Activity { priate static final int REQUET_IMAGE_CAPTURE = 1; private Uri imageUri; // 省略 private void runCamera() { Bundle extras = getIntent().getExtras(); // 標準のカメラ撮影時の保存場所を取得 File pathExternalPub
そろそろ決着をつけようじゃないか。 鬼門鬼門ってもういい加減いいだろ。androidが発表されてから何年経ってると思ってるんだ。 情報で揃ってるだろJKwwwwwwww そんな風に思ってた時期が僕にもありました。 androidにおけるカメラから画像を取得する際の問題 端末によって取得方法が異なる 予めMediaStore.EXTRA_OUTPUT にUriを渡して置く方法 どういうわけか、onActivityResult のIntentのgetData()で取れるUriに入っているものを取得する方法(Xperia2.0系?) それでも取れないからdata.getExtras().get("data")をBitmapにキャストして使う方法(IS03?) 基本的に、横向き扱いである getContentResolver()でinsertすると、なぜかexifが取れない (´・ω・`)・・・多
「アプリを移譲することになった」 「やっぱり別のアカウントでアプリを管理したい」 ってのは割とよくある話だと思います。 こちらからどうぞ(英語必須) https://support.google.com/googleplay/android-developer/contact/dev_registration?extra.IssueType=transfer うまく表示されない場合は、 https://support.google.com/googleplay/android-developer/ のページ下部にある言語を選択から「English」を選択。 「CONTACT US」を押して Registration and Account Issues を選択 I would like to have my apps transferred to a new account を選択 Ple
今回ListViewのheaderに、横にスワイプしたりフリックしたりすることで画像が切り替わる様なビューを入れることになったのですが、困ったことになりました。 ここまで読んでピンと来て解決策だけ知りたい方はすっ飛ばして下の方を読んでくだい。 で、どんなことが起きたのかと言いますと。 青い部分がListView、で、そのHeaderの中に入っているViewPagerが緑の部分です。 ViewPagerの部分は横フリックしたら動く、縦にフリックすればListViewが動く。という期待をしていたのですが、少し違いました。 上記のオレンジ色の軌道を指が動いた時にどうなるかというと、赤い丸で囲まれてるように少しでもViewPager上でy軸方向に動いてしまった瞬間に、ViewPagerからイベントは外れて、ListViewにわたってしまいます。1pxもずらさずに横にスワイプした時にした期待した動作
タイトル通りなので、onAnimationEndの中でそのままremoveViewしてはいけない。 結論だけ言うと、Handlerを使って処理を遅延させて回避する。 @Override public void onAnimationEnd(Animation animation) { new Handler().post(new Runnable() { @Override public void run() { ((RelativeLayout)view.findViewById(R.id.some_layout)).removeView(someView); } }); } 参考:http://stackoverflow.com/questions/5569267/nullpointerexception-that-doesnt-point-to-any-line-in-my-code
WebViewを使うと電池の消耗が激しい時の解決方法 を書いた後に気づいたので書きます。 電池の勝手な消費が解決したわけですが、よくわからないままに終わらせるのはよくないなーと思ったのでリファレンスを覗いてみたらこんなことが書かれてました。 pauseTimers() Pauses all layout, parsing, and JavaScript timers for all WebViews. えーなになに 「全てのウェブビューのレイアウトとかJavascriptを停止するよ!」 へーふーん。 えっ なんとこのメソッド。WebViewのインスタンすではなく、全てのWebViewを停止するようです。じゃぁ全てのWebViewって何を指すんでしょうね?タブとかで幾つかあるのならそれらは全部止まりそうです。そこまでは予想付きました。 まさかActivity遷移後まで影響するとは思いません
Uri型で渡すので、SDカードとかに保存されたファイル名を渡すときは以下のような感じでエスケープしないとダメ。 public void playMusic() { Intent it = new Intent(Intent.ACTION_VIEW); Uri uri = Uri.parse("file://" + Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + Uri.encode("ほげ.mp3")); it.setDataAndType(uri, "audio/mp3"); trackListActivity.parentActivityGroup.getParent().startActivity(it); } Uriなので当然と言えば当然だよね・・・orz ちなみに、URL
androidアプリを開発していて、特に変更した覚えがないのにレビューに「電池の消費が激しい、アンインストールした」 とか書かれてたので 「今回のアップデートではWebViewの初期URLを変更しただけでそんなことがあるわけ」 あった で、実際変更は上記の通り、初期URLを変更しただけ。 ただし、そのURLで表示されるページが画像がスライドするJavaScriptが二箇所ほどある結構CPUを食うページでした。 DDMSでチェックしてみると、アプリがBackgroundに入ってもWebViewが動いてる・・・どういうことなの・・・ と思って調べてみると、アプリがbackgroundに入ってもWebViewを動かす必要がないときはonPauseとonResumeできちんとWebViewを一時停止してやらないといけないようでした。 レビューしてくれた人すいません。気づいてくれてありがとうございま
コードレビューの度に、人を集めるのって大変だよねってことでsubversionなんかのバグ管理ツールと連携するコードデビューツールやプラグインを調べてざっくりまとめてみた。デモやら周囲の評判だけで書いているので、うそついてるかもしれないのであしからず。 r-labs - Code Review - Redmine Redmineのプラグイン リポジトリブラウザでコメントを書くことができる Redmineのリポジトリブラウザにレビューを書き込むことができます。 任意のリビジョンにレビューを書けます。 任意のリビジョン間の差分にレビューを書けます。 チケットに添付したパッチファイルにレビューを書けます。 レビューの実態はチケットです。 レビューに返信することができます。 レビューが追加されたらメールで通知することができます。 レビューの状態(オープン中、クローズ済み)管理ができます。 riev
jQueryに慣れると、prototypeよか便利な気がしますね。 最新版のprototypeはjQueryにある機能を大体備えてますが、調べていると先に実装いているのはjQueryの方が早いということを書いてある記事をちらほら目にします。 jQueryの場合は$()で指定できるものがidだけじゃなく、クラスだろうがタグだろうが何でもぶち込めます。 記述の仕方もCSSに書くのと同じで id="hoge" => $("#hoge") class="hoge" => $(".hoge") <div> => $("div") 見たいな感じですね。 複数のオブジェクトを指す場合($(".hoge")とか)は $(".hoge").css("height","10px"); とか書くとclass="hoge"を持つオブジェクトすべてのheightプロパティの値が10pxになりますね。 prototy
preferenceは何もxmlだけで書かなくても、intentで飛ばすことができるらしい。 僕は設定画面からOuth認証させたかったので、通常のxmlだけでは定義できないので普通のActivityに飛ばしたい。 で、注意したいのがintentを使用するときにtargetClassはパッケージ名も含めて書くということらしい。 <PreferenceScreen android:title="[タイトル]" android:summary="[サマリ]"> <intent android:action="android.intent.action.MAIN" android:targetPackage="[パッケージ名]" android:targetClass="[パッケージ名].[クラス名]" /> </PreferenceScreen> 参考: http://blog.utils.jp
WindowsでCabochaをJAVAから使いたい.しかし,Java用のライブラリがないので,execでCabochaを叩いてみる. String cabochaPath = "C:\\Program Files\\CaboCha\\bin\\cabocha.exe"; String command = cabochaPath; Process process = null; try { process = Runtime.getRuntime().exec(command); OutputStream out= process.getOutputStream(); OutputStreamWriter writer = new OutputStreamWriter(out, "UTF-8"); writer.write("ほげを参照"); writer.close(); InputSt
element.style.* で取得できるのはインラインCSSだけ。 function getStyle(element, style) { if(!/*@cc_on!@*/false) { var cs = document.defaultView.getComputedStyle(element, null); var value = cs.getPropertyValue (style); return value; } else { return element.currentStyle['style']; } }; こんな感じで取って来れそう。エラー処理甘いけど。
このページを最初にブックマークしてみませんか?
『ひらい ぶらり Hi-Library』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く