読者です 読者をやめる 読者になる 読者になる

ほげほげ(仮)

仮死状態

Firebase Cloud Messagingで通知をカスタマイズ(Android)

Firebase Cloud Messaging (FCM)を試して、通知のカスタマイズについて調べてみました。 FCMとNotification FirebaseにはFCMとは別にNotificationという似たようなのがあります。 この辺りの違いは下記の記事にまとまってます。 Firebaseによるプッシュ通知…

RecyclerViewでDataBindingを使う

RecyclerViewでDataBindingを使用する簡単なサンプルです。 Gradle DataBindingの設定をしておきます。 android { // ... dataBinding { enabled = true } } データクラス サンプル用に次のような簡単なデータクラスを用意します。 public class Item { publ…

CircleCIでAndroidのビルドとテスト

CircleCIでAndroidのビルドとテストをするためのcircle.ymlのメモです。 circle.yml machine: java: version: oraclejdk8 dependencies: pre: - echo y | android update sdk --no-ui --all --filter "android-23,build-tools-23.0.3" test: override: - ./g…

AndroidにRetrolabmdaを導入する

今更な感じもしますが、AndroidにRetrolabmdaを導入する手順です。 RetrolabmdaはJava5,6,7でJava8のラムダ式を使えるようにしたものです。 ちょっと導入設定で少しハマったので手順を残しておきます。 環境 OS X El Capitan Android Studio 2.1 Android Gra…

SupportLibraryのVectorDrawableを使う

ベクター画像のVectorDrawableを使うことで各解像度ごとに画像を用意する必要がなくなります。また画像を拡大してもぼやけることなくキレイに表示できるようになります。 元々はAndroid5.0以降からの対応だったのですが、Support Library 23.2.0から5.0未満…

Androidでスクロールした時にToolbarを隠す

概要 Google Playのようにスクロールした時にToolbar部分を隠す単純な方法です。 SupportLibraryのみを使って実装できます。 余計な実装は極力省いていますのでActivityのみで実装してます。 注意 先に注意事項を。 これをLollipop未満のバージョンで実現す…

AndroidStudioを使ってUnityとAndroidの連携

概要 UnityとAndroidを連携するには色々やり方あると思いますが、AndroidStudioを使ってaarを作成し連携させます。 色々調べてたらEclipseとjarを使った連携をよく見かけましたが、ADTがもう開発終わってしまうので今後はAndroidStudioを使うべきでしょう。…

AndroidからCocos2d-xの処理を呼び出す

AndroidのJavaからCocos2d-xのC++の処理を呼び出します。 Objective-Cに比べるとかなり面倒です。 あとで出てくるjavahの箇所は面倒なので、関数名の規則がわかるなら飛ばしても平気です。 関連 Cocos2d-xからObjective-Cの処理を呼び出す - ほげほげ(仮) …

Cocos2d-xからAndroidの処理を呼び出す

Cocos2d-xのC++からAndroidのJavaの処理を呼び出す方法です。JNIを使用します。 Objective-Cの場合と違って結構面倒です。 ここの連携はEclipseで書いたほうが良いかもです。 関連 Cocos2d-xからObjective-Cの処理を呼び出す - ほげほげ(仮) AndroidからCo…

Androidのデバッグ実行時にパッケージ名、アプリ名を変更する

パッケージ名変更 build.gradleを下のようにすると、デバッグ時はパッケージ名の後ろに.debugが追加されるようになります android { ... buildTypes { debug { applicationIdSuffix ".debug" } release { ... } } } アプリ名変更 buildTypeがdebug時はsrc/de…

Android StudioからRobolectricのテストを直接実行する

Android Studio + Robolectricでは基本的にターミナルからGradleで実行する感じっぽいですが、これだとテスト結果が見づらいし全部のテストを毎回実行するのはムダだと思うでAndroid Studioから直接テストを実行できるようにしました。 注意点としては結構面…

AndroidStudio + Robolectric + Guardによる自動実行

JakeWharton/gradle-android-test-plugin がDEPRECATEDになってたのですが、いつの間にかrobolectric本家がfork(robolectric/gradle-android-test-plugin)してたので使い方をまとめおきます。 robolectric/deckard-gradle をシンプルにした感じです。 設定…

GuardでAndroidのテストを自動実行する

※追記 JakeWharton / gradle-android-test-plugin がDEPRECATEDになってしまいました… なのでこの記事は参考にしないでください。記事自体は一応残しておきます ※さらに追記 新しく書き直しました。AndroidStudio + Robolectric + Guardによる自動実行 - ほ…

Android StudioでRobolectricを使う

※追記 JakeWharton / gradle-android-test-plugin がDEPRECATEDになってしまいました… なのでこの記事は参考にしないでください。記事自体は一応残しておきます。 ※さらに追記 新しく書き直しました。AndroidStudio + Robolectric + Guardによる自動実行 - …

Daggerを触ってみた

気になっていたDaggerを少し触ってサンプルを作りました。公式のサンプルがぼくにとって分かりにくかったのですごくシンプルにしました。まだ分かってないこと多いです… DaggerはAndroidとJava向けの高速なDIコンテナです。 Daggerについて詳しくは公式をど…

Android + IntelliJ + Maven + ActionBarSherlockの環境を試してみる

Android Studioが発表されたのに今更感はハンパないですが、目的としてはIntelliJに慣れることとMavenを触っておきたかったっていう感じです。 Mavenはほとんど触ったこと無いのでかなり手こずりました。また、これはとりあえず動いたレベルなのでこの状態で…

Android Studioの設定をいじってみる

Android Studio 出ましたね。 自分はずっとEclipseだったので色々使い方に慣れないとダメなので、まずはちょっと設定をいじってみました。 テーマの変更 メニューのPreferences…->Appearance->ThemeをDarculaに変更してダーク系のテーマにします。 フォント…

ListViewの中にボタンを置くときの注意

ListViewの各行にボタンを置いた時にハマりそうな箇所のメモです。 ListViewのsetOnItemClickListenerが動かない時 Adapterで使用しているレイアウトファイルを次のようにします。

SharedPreferencesをテストする

SharedPreferencesをテストしたときのメモです。 テスト対象コードサンプル サンプルとしてボタン押したらSharedPreferencesに保存するだけのコードです。 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedIns…

Fragmentをテストしてみる

正しいやり方なのかは不明ですが、色々試した結果のメモ テスト対象コードサンプル Fragment内でButtonが押されたらEditTextをクリアするMainFragment.java public class MainFragment extends Fragment { private EditText mEditText; private Button mButt…

AlertDialog.Builder#setItemsの項目管理を改善する

AlertDialog.Builder#setItemsはリスト形式のダイアログを表示してくれますが、どうしても項目の管理がやっかいでした。 色々試して項目管理を楽できるようにしてみました。 問題点 AlertDialog.Builder#setItemsは第一引数に配列リソースIDのとString配列の…

FragmentでタブUIを簡単にできるライブラリ作った

今更な感じですが、TabActivityとかActivityGroupがdeprecatedになっちゃってタブ画面を作るにはどうすればいいか試行錯誤した結果です。 そもそもTabActivityとかActivityGroupは非常に使いにくいものでしたが…作ったのはGitHubにあげてあります。(名前は…

DeployGateについて

Android Advent Calendar 2012 (裏) 12/23担当の@STAR_ZEROです。 表は@shogoggさんです。 DeployGate使っててすごく便利だと感じたので軽く紹介します。 前日のネタとカブり気味ですが… 詳しい使い方等は公式ドキュメントも合わせて参照してください。 Depl…

AndroidのJUnitテスト結果を取得する

AndroidのテストプロジェクトではJUnitの結果が出力されません。 これを出力するためにはちょいとゴニョゴニョとすることが必要です。 今回使ったのは jsankey/android-junit-report · GitHub です Antで実行可能にする Antで実行できるようにするには下記の…

画像を挿入できるEditTextを作った

カーソルがある位置に画像を挿入できるEditTextを作ってみました。 単純にHTMLのimgタグを使ってるだけですが。 ソースコードはGitHubにあげてあります。 STAR-ZERO/ImageInEdit-android · GitHub] 参考: Html | Android Developers Html.ImageGetter | Andr…

WebViewでgifアニメを表示してるとWebViewCoreThreadが動き続ける

WebViewを使っていて電池の消耗が激しく調査したところ WebViewCoreThreadがずっと動き続けているのがDDMSから確認できました。 バックグラウンドに移行したときも動き続けてました。 更に色々調べたらgifアニメを表示している場合だとWebViewCoreThreadが動…

AndroidでWebSocket通信する

AndroidでWebSocket通信するサンプルです。 使用したライブラリは TooTallNate/Java-WebSocket · GitHub です。 weberknecht - Java WebSocket Client Library - Google Project Hosting のほうが人気があるらしいですけど、Java-WebSocketのほうがライセン…

Android4.0でフォントサイズが変わるのを何とかする

Android4.0(Ice Cream Sandwich)から設定でフォントサイズがユーザー側で変更できるようになっています。 spでフォントサイズを指定した箇所はコノ設定に従ってサイズが変わってしまいます。 コレを何とかしたいと思います。 とりあえず見つけた方法なので…

setLayoutParamsでClassCastException

Viewの大きさを変更するときに、ちょいとハマったのでメモメモ。 まず、このようなレイアウトがあるとします。 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> </linearlayout>

Android NDKをインストールしてみる

Android NDKをインストールした時のメモ 正直、NDKについては全然分かりません。とりあえず環境を整えないと勉強もできないので・・・ 環境 Mac OS X 10.6.8 Eclipse3.6 Helios Android NDKのダウンロード Android NDK | Android Developers ↑から最新のをダ…

GALAXY S2を買った

昨日、ようやくGALAXY S2を買いました。 これで初代Xperiaとはサヨウナラです。 アプリの動作検証で使うことはあるかもしれませんが・・・ とりあえず、一日使ってみての感想です。 サクサク動く、画面が大きいって感じですね。 電池もたぶん長持ちしてるの…

動的にidを取得する

文字列から動的にビューのidを取得するには次のように書きます。 int id = getResources().getIdentifier("test_view", "id", getPackageName()); これだけです。思ったより簡単。 ビューのid以外にもdrawable等も取得できます。 その場合は上のコードの「id…

WebViewで現在のページのタイトルを取得する

WebViewで現在表示しているタイトルを取得するには WebView.getTitle を使えば取得できます。 WebView | Android Developers で、ここで疑問が出てきます。どのタイミングで取得すればいいのかということです。 リファレンスを見ると WebViewClient.onReceiv…

ウィジェットの背景色を動的に変更する

ウィジェットの背景色を変更にするには次のようにします。 RemoteViews view = new RemoteViews(context.getPackageName(), R.layout.main); view.setInt(R.id.layout, "setBackgroundColor", Color.RED); しかし、この方法では2.1以前でエラーになるためウ…

ウィジェットからActivityを起動するとき

ウィジェットをタッチすることでActivityを起動したりすることがあると思いますが、自分がハマったことをメモしておきます。 Activityの起動自体に問題はないのですが、起動方法でハマりました。 まず現象としては 【1】通常通りアプリを起動(a) → ホームキ…

AppWidgetProviderからServiceにappWidgetIdを渡す方法

最近、Andoridのウィジェットについて色々と調べてます。 普通のActivityと違うところが多くてかなり戸惑ってます。 ウィジェットのボタンを押されたとき、ServiceにappWidgetIdが渡せないか調べた結果です。 ウィジェットはホームスクリーンに複数設置でき…

複数Activity間でSQLiteを使用する場合

複数のActivity間でSQLiteを使用する場合「SQLiteDatabase created and never closed」というエラーが発生するときの解決方法です。 Cursorのクローズを行っていないのが原因なのですが、どこで書けばいいのが微妙だったので調べました。 ※Cursorをすぐにク…

WebViewのテキスト選択

WebViewでテキストを選択する方法を調べました。テキストを選択するにはemulateShiftHeldというメソッドを使えばいいのですが、 このメソッドが2.1以前だと非公開のようです。2.1以前の場合は Cosme Zamudio: WebView emulateShiftHeld() on Android Newer S…

テーマで設定されている値を取得する

ここ最近はAndroidネタばかりです。 Androidではテーマを設定できるのですが、テーマで設定されている値を取得したくて色々やった結果です。 TypedValue typedValue = new TypedValue(); getTheme().resolveAttribute(android.R.attr.colorBackground, typed…

WebViewの長押しイベントについて(2.3以降)

以前、WebViewの長押しについて書きましたが 2.3からどうも挙動が変わってるみたいなのでメモしておきます。 (ついでに前回の記事で一部ミスってたので修正しておきました。) ざっと確認したところ、WebViewのどこを押しても長押しのイベントが走るみたい…

スワイプのイベントを取得する

android,source code,programming 上のサイトを参考にしました。 スワイプのイベントを取得するにはGestureDetectorを使います。 とりあえず、ソースコードを見てください。 public class MainActivity extends Activity { private static final int SWIPE_M…

設定画面のテキストのサイズ・カラーを変えてみる

Androidの設定画面(PreferenceActivity)でtitleとsummaryのテキストのサイズ・カラーを簡単に変えれないかやってみました。 まずは通常通りにやります。xml <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="カテゴリー"> </preferencecategory></preferencescreen>

設定画面のちょっとしたカスタマイズ

久々のAndroidネタです。 AndroidはPreferenceActivityっていうのを使えば簡単に設定画面が作れますが、ある程度レイアウトが決まっています。 今回はそれをちょっとだけカスタマイズしてみようと思います。 今更感もありますが、メモということで。 こうい…

iTMSearchというAndroidアプリを公開しました

iTMSearchというアプリを公開しました。 何が出来るかというと、iTunes Music Storeを検索できるだけです。 作成したきっかけ 作ろうと思ったきっかけですが、よくタワーレコードとかでCDを買うのですが、 iTunes Music Storeで買ったほうが安いんですよねぇ…

JSONICを使ってるとProGuardがうまくいかない

タイトル通りですが、ProGuardでの難読化がエラーでうまくいきませんでした。理由は分かりません・・・すいません>< 解決方法を先に言うとJSONICの代わりにgoogle-gsonというライブラリを使いました。最初は自分で実装しようかとも思ったんですが面倒で・…

音声入力を試してみる

Androidでの音声入力を試してみました。Recognizer Intent APIを使えば簡単に実装できます。 画面レイアウト <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> </linearlayout>

AndroidアプリにAdMobを設置する

AndroidアプリへのAdMobの設置方法ですが、他のサイトの通りにやったら 下のようなエラーメッセージが出て、広告が表示されませんでした。 could not find com.admob.android.ads.AdMobActivity, please make sure it is registered in AndroidManifest.xml …

WebViewの長押しのイベントを取得する

通常のブラウザのように長押しで画像の保存等を行うには次のようにやります。 mWebView.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { WebView webView = (WebView) v; WebView.HitTestResult hr = w…

DatePickerDialogのタイトル

次のようにDatePickerDialogを使うと // 今日の日付を取得 Calendar c = Calendar.getInstance(); int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MONTH); int day = c.get(Calendar.DAY_OF_MONTH); // DatePickerDialogを表示 DatePickerDia…

AndroidでGPSを使ってみる

AndroidでGPSを使った簡単サンプルを使ってみました。今回はロケーションが変更されるたびにマップの表示を変更しています。 以前書いたGoogleMapのサンプルに若干の修正を入れました。 AndroidManifest.xml <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.sample.map" android:versionCode="1" android:versionName="1.0">…</manifest>