Androidはワンツーパンチ 三歩進んで二歩下がる

Android卵プログラマーの記録ブログ

Android

Androidアプリ「ポケット糖質量」をリリースいたしました

こんにちは。さくらです。 Androidアプリ「ポケット糖質量」をリリースいたしました。 play.google.comこのアプリが何を出来るかといいますと、1100種類以上の食品データから糖質量などの栄養素をリスト表示・検索することが出来ます。 以前このブログでRail…

Material DesignのsvgアイコンをAndroid StudioでVector Asset Studioを使ってVectorDrawableのxml形式に変換する方法

GoogleのマテリアルデザインのアイコンをAndroid Studioで簡単に使えるようにして普通の画像に近い感じでImageViewで使えるようにする方法です。 エントリの題名はマテリアルアイコンのことについてになっていますが、SVGまたはPSDフォーマットのベクター画…

伸び縮みするCardViewを作成する(cachapa/ExpandableLayout + RecyclerView + CardViewのサンプル)

RecyclerViewを使ってリスト表示しているレイアウトがあり、その中でタップするとViewが伸縮するCardViewを表示するレイアウトのサンプルを作ったのでメモです。 ExpandableListViewと似たような表示方法です。 こちらに全体のソースがあります。短いコード…

AndroidのTextUtilsのisEmptyメソッドとJavaのStringのisEmptyメソッドはわりと違う

年がら年中使っているAndroidのTextUtilsのisEmptyメソッドとJavaのStringのisEmptyメソッドですが、同じ名前で何が違うのか調べたメモです。 TextUtilsクラスのメソッドは全てstaticで定義されていて、JavaのisEmptyメソッドはインスタンス変数から使用する…

緯度・経度から郵便番号を取得する

Geocoderクラスを使って緯度と経度から郵便番号を取得する方法です。 題名は郵便番号を取得するとなっていますが、住所も取得できます。 自分が郵便番号というキーワードで検索していたため自分用メモです。 developer.android.com Gercoderを使用して住所(…

LocationManagerはもう古い!Google Service の Location APIを使って現在位置を取得する

しばらく使っていない分野のAPIっていつの間にか非推奨になってたりしますよね。 変化の激しいAndroid開発で全ての変化に付いていくのは至難の業だと思います。 恥ずかしいんですが、この度久しぶりに位置情報の取得方法を調べましたら結構前に時代が変わっ…

DataBindingを使おうとしてバインディングクラスがcannot resolve などとエラーになった時に確認すること

DataBindingを使う時に、プロジェクト生成時に作成したactivity_main.xmlとMainActivity.javaをバインディングしようとしただけで 「Cannot resolve symbol 'ActivityMainBinding'」とか言われたはことないでしょうか。 私は2回あるので、初歩的ではありま…

Android4.4のWebViewでopenFileChooserが動かない件の対処方法2つ JavascriptInterfaceを使う/Crosswalkを使う

WebViewで表示しているページ上で、ユーザーがボタンを押したらローカルのイメージ一覧を表示するような処理があるとします。 そして、ボタンを押されたイベントをネイティブで受け取る→暗黙的Intentでギャラリーを呼び出しファイルを選択させるということを…

アプリをアンインストールすると端末が再起動してしまう現象にキャッシュパーテーションの消去が効くかもしれない

メモです。私の端末: Nexus5x 現象: アプリをアンインストールすると端末が再起動してしまうことがある。 同じアプリをアンインストール→インストールするのを繰り返したが違うアプリだとどうなるかは不明 現象が発生するタイミング: 不定期 端末が再起動し…

Nexus5xがFirmware Updateの画面を表示したまま0%のまま動かない

よくワカランチンメモ手持ちのNexus5Xを電源オフ ↓ power + volume up button 同時長押し ↓ Firmware Updateの画面が表示されたままになる(プログレスバーの数字が0%のまま) ↓ しばらく放置するもなんら状況が変わらない ↓ 電源ボタン長押し ↓ 普通に再起…

Android 6.0 Marshmallow(API level 23) で導入されたDozeでダイアログから電池の最適化の無視を許可したのに設定画面の「最適化してないアプリ」一覧には反映されない問題

こんにちは。最近体調が不安定です。Android 6.0 Marshmallow(API level 23) で導入されたDozeという機能があります。 Optimizing for Doze and App Standby | Android Developers電池を長持ちさせるために、一定時間以上ユーザーがスマフォにアクセスしない…

ExoPlayerで動画の音声をミュートする方法

ExoPlayerと言えばGoogleがMediaPlayerの代替となるものとして発表したオープンソースのライブラリです。 ExoPlayer | Android Developers ExoPlayer - Home公式のDemoを使うこと前提ですが、動画の音声をミュート(ボリュームを調整)する方法のメモです。s…

コンパイル時にpackageの場所がおかしいというメッセージが出た

メモです。エラーではないのですが、このようなメッセージがbuildのログに表示されました。 Information:Gradle tasks [:app:assembleStaging] Observed package id 'add-ons;addon-google_apis-google-19' in inconsistent location '/Users/sakura/Library…

AndroidアプリでFacebookのパーミッションを取得した話

このポストではFacebook API ver2.0 / Graph API v2.4の時点の情報を書いています。 FacebookのGraph APIを利用したAndroidアプリを作りました。 そのアプリはデモアプリみたいなもので、画面のデザインや素材作成も含めて製作期間は一週間ぐらいの小さなも…

FacebookのAndroidアプリを作る。開発者登録〜FacebookアプリID取得

developers.facebook.com AndroidでFacebook SDKを使ったアプリを作成する場合、Facebookのデベロッパーサイトでアプリを登録する必要があります。 その手順をまとめたいと思います。(このエントリー作成時点のFacebook APIバージョンは2.0、Graph APIバー…

AndroidでListPreferenceを使う時にsummaryに選択された項目を自動で表示する方法

AndroidでPreferenceScreenを定義してListPreferenceを使う時にsummaryに選択された項目を自動で表示する方法を調べていて、これ面白いなーと思ったのでメモしておきます。下記のようにListPreferenceのandroid:summary="%s"と指定しておきます。 そうします…

速いと噂のAndroid ORMライブラリDBFlowを使ってみた

Raizlabs社というところのDBFlowというORマッパライブラリを使ってみました。 とても新しいライブラリで、2014/9/7がfirst commitとなっています。github.comこちらのサイト様で紹介されています。qiita.comRaizlabs社のスピードテストでは非常に速いという…

gradleで build variantsを使用して複数のApplication IDを作ったがGCMのレシーバーなどでパッケージ名がバッティングしてしまう時の対処方法

私はgradleを使いこなしていると言うには程遠いレベルですが、Eclipseの時代より楽になった!もう戻れない! と思うものはbuild variantsなる機能を用いるとリリース用、デバッグ用でパッケージ名やapk名やリソースを簡単に変えられることです。Configuring …

Facebookでログイン済みかどうかをチェックし、Facebook SDKのログイン画面を表示する

Facebook SDK v4で動作確認しています。おなじみのログイン画面 Facebookでログイン済みかどうかをチェック (他にいい方法があるかもしれませんが) private boolean checkLogin() { AccessToken accessToken = AccessToken.getCurrentAccessToken(); retur…

DrawerLayout内でマルチタッチ処理を行うとArrayIndexOutOfBoundsExceptionが発生する

「自分用メモ」です。こればっか言ってますなバッドノウハウを自分用メモですと言ってる感が。先人の知恵以外何も無いし 恥ずかしい気分モードですが、気を取り直して書きます。support-v4:22.2.1のお話です。 PhotoViewという、画像をピンチイン・ピンチア…

PhotoViewライブラリを使おうとしたらCould not find com.github.chrisbanes.photoview:library:1.2.4.とgradleに怒られた

偉大なるPhotoViewを我がプロジェクトに取り込むにあたり、エラーに遭遇しました。 その時のメモです。chrisbanes/PhotoViewgithub.comgithubの説明のとおりにbuild.gradleに記述しました。 repositories { mavenCentral() } dependencies { compile 'com.gi…

Material Designを実装するのに役に立ったリンクを紹介します

インコ発信確認をアップデートしました。 インコ発信確認 - Google Play の Android アプリリリースしてから放置してしまっていたのですが、ユーザー様からLolipopスタイルにしてほしいとご意見をいただきマテリアルデザイン風にしてみました。 作成にあたっ…

AndroidのプロジェクトにFacebook SDKをimportしてうまく行かなかった時のメモ

事情があってまだEclipseでも新規にプロジェクトを作ることがあります。 FacebookのSDKを使う必要があり、つまづいた時の自分用メモです。Facebook SDKは2015/07/23現在v 3.23.1です。 Facebook SDK for Android公式サイトでもEclipseで使用する方法は書いて…

2015/7 eclipseからAndroid Studioへの移行と古いgitリポジトリの移行

最近のメモです。 Android Studio1.2.2 eclipseプロジェクトをAndroid Studioにimportする 以前はeclipseでgradleのファイルをexportしていたと思いますが、今はその必要はなく Android Studio起動 File > New > Import Project. 又はwelcom画面のImport pro…

ImageViewを丸く表示するViewを作ってみた

マテリアルデザインで人物のアイコンを円形で表示するのを見かけますが、ImageViewを拡張して画像を丸く表示するViewを作りました。 既にネット上に優れたコードがあると思いますが、私のはシンプルなやつです。・楕円や角丸ではなく正円に画像をくり抜くイ…

特定の端末でhttpResponseをEntityUtils.toStringしようとするとSocketExceptionが発生した

先日発生した事象です。出先で端末をお借りしてデバッグしたのであまり追求できなかったのですが、何だこれよくわからんと思ったので、メモしておきます。現象 特定の端末(305SH)でHttp通信を行った際、レスポンスをStringにする箇所でSocketExceptionが発生…

Androidの4.3未満でCMYK形式の画像が表示できない件

先日お問い合わせがあって、ある画像だけがアプリで表示できないという現象が発生しました。 その時のメモです。表示できていない箇所はネットワーク上にある画像ファイルをImageViewで表示する箇所でした。 (正確にはNetworkImageViewというImageViewを継承…

Android Studioでimport projectしようとしたがGradle homeがセットされていなくて、”Gradle location is not specified"と怒られたときの対処法

※Android Studio 1.2 Betaでの情報です。Android Studioでimport projectしようとしてGradle homeがセットされていなくて、”Gradle location is not specified"と怒られたときにやったことのメモです。とあるライブラリをimportしようとした時に発生したので…

Androidアプリ 「インコ発信確認」をリリースしました

発信確認アプリは世の中にたくさんあるのですが、あえて!満を持して! リリースしました! インコ発信確認 - Google Play の Android アプリというわけではありません(;^ω^) メンゴメンゴちょっと空き時間に作ったものを2ヶ月ほど個人的に使用していま…

AndroidのWebViewでiFrame内のリンクをクリック時に外部ブラウザに飛ばす方法

WebViewにてURLで処理を制御する時にお馴染みですが、 WebViewClientのオブジェクトをWebViewにセットして、shouldOverrideUrlLoadingメソッドをoverrideする方法を取ります。 ですが、iFrame内のリンクをクリックした時はshouldOverrideUrlLoadingが呼ばれ…