Android アプリ開発 「MATRIX」

Androidアプリの開発に役立つサンプル集

画面の回転(縦位置 ⇔ 横位置)に対応する方法

画面の回転に対応する方法 アンドロイドアプリは画面を回転(横位置 ⇔ 縦位置)させると、自動でアクティビティが再起動される仕組み(仕様)になっているため、変数のデータも破棄されてしまいます。 そのため、画面の回転に対応するには、回転の直前に呼び…

Android Studio 3.3 の「レイアウトエディタ」のプレビュー表示を以前の状態に戻す方法

レイアウトエディタのプレビュー表示が変わった Android Studio 3.3 になって「レイアウトエディタ」のプレビュー表示が変わりました。 以前はタイトルバー(アクションバー)や、上段の通知バー、下段にホームボタン、戻るボタンなどがありましたが、Androi…

端末のバッテリー充電レベルを監視する方法

端末のバッテリー充電レベルを監視する バッテリーの充電レベルを監視するには、バッテリーの充電レベルが変化するたびに端末から発信されるバッテリー充電レベルのインテントをブロードキャストレシーバーで受信する必要があります。 <流れ> 1.端末のバ…

ブロードキャストレシーバーの基本的な使い方(その2)

ブロードキャストレシーバーの使い方(その2) ブロードキャストレシーバーは端末が発信している様々なメッセージや情報を受信するクラスです。これを利用すると、時間やタイムゾーンの変化、バッテリーの残量や充電状態など、細かな端末の状態を知ることが…

ブロードキャストレシーバーの基本的な使い方(その1)

ブロードキャストレシーバーの使い方(その1) ブロードキャストレシーバーは端末が送信している様々なメッセージや情報を受信するクラスです。これを利用すると、時間やタイムゾーンの変化、バッテリーの残量や充電状態など、細かな端末の状態を知ることが…

画面をタッチしたまま指を動かす「ムーブイベント」を検出する方法

「ムーブイベント」を検出する スマートフォンやタブレットの画面をタッチしたまま指を動かす「ムーブイベント」を検出するには View クラスの「onTouchEvent」メソッドの中で「MotionEvent.ACTION_MOVE」アクションを取得します。 サンプルコード①(MainAct…

画面がタッチされた時にX座標とY座標を取得する方法

画面がタッチされた時にX座標とY座標を取得する スマートフォンやタブレットの画面がタッチされた時にX座標とY座標を取得するには「View」クラスの「onTouchEvent」メソッドを使用します。 サンプルコード①(MainActivity.java) 詳しい説明はコード内のコメ…

押されたキーの「キーコード」を取得する方法

押されたキーの「キーコード」を取得する スマートフォンやタブレットの物理的な「キー」が押された時に、そのキーコードを取得するには「View」クラスの「onKeyDown」イベントを利用します。この「onKeyDown」イベントはソフトウェアキーボードのコードも取…

Google Play Instant Development SDK(1.6.0)のアップデートがエラーで失敗する場合の対処方法

Google Play Instant Development SDK のアップデートエラー Android Studio の SDKマネージャーで「Google Play Instant Development SDK」のリビジョンを「1.5.0」→「1.6.0」にアップデートしようとすると、原因不明のエラーが発生してアップデートできな…

音楽を再生するアプリを作ってみよう ~ メディアプレイヤーの基本的な使い方 ~

音楽を再生するアプリの作り方 今回はメディアプレイヤーを使って音楽を再生するアプリを作ってみます。音楽を再生するアプリと聞くといろいろと難しいのでは・・・と考えてしまいがちですが、一つの曲を単純に再生するだけならとくに難しい技術は必要ありま…

Google Play Instant Development SDK(revision 1.5.0)のアップデートがエラーで失敗する場合の対処方法

Google Play Instant Development SDK のアップデートエラー Android Studio で Google Play Instant Development SDK のリビジョンを「1.4.0」から「1.5.0」にアップデートしようとするとエラーが発生してアップデートできない場合があります。 Android Stu…

サービスの基本的な使い方を知っておこう

基本的なサービスの使い方 今回は「サービス」の基本的な使い方です。「サービス」というのは長時間バックグラウンドで動きインターフェース画面を持たないアプリケーションです。基本的な作り方は意外に簡単で、サービスを継承したクラスを作った後、それを…

GPSを利用したスピードメーター(速度計)の作り方

GPSを利用したスピードメーター(速度計) 今回はGPSを利用したシンプルなスピードメーター(速度計)の作り方です。 Android Java には現在の速度を「m/s」単位で取得できる関数「getSpeed」があるので、GPSの位置情報からいちいち速度を計算する必要はあり…

ブラウザを起動するボタンを作る方法

ブラウザを起動するボタンを作る 今回はボタンをクリックするとブラウザが起動して「Yahoo!」サイトを表示するサンプルを作ります。 動作の流れは、Uriに「Yahoo!」のアドレスをセットし、UriをセットしたIntent(ACTION_VIEW)を作成して、最後にそのIntent…

エミュレーター(AVD)の動作がおかしくなった時の対処方法

エミュレーターの動作がおかしくなったら… アプリの開発を続けているとフリーズや予期しないシャットダウンなどで時々エミュレーターの動作が悪くなってしまうことがありますが、Android Studio のエミュレーター(AVD)は一度調子が悪くなると自然に復旧す…

バッテリーの状態を簡単に取得する方法

バッテリーの状態を取得する 今回はスマートフォンのバッテリー状態を取得する方法の説明です。 バッテリーの状態はスティッキーインテントなのでブロードキャストレシーバーが無くても取得ができるようになっていますが、バッテリーの状態の変化を常に監視…

Android Studio 3.2 でビルドエラー「No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android」が出た時の対処方法

Android Studio 3.2 にアップデート後にビルドエラーが発生 アンドロイドスタジオ(Android Studio)をアップデートした後に、以前に作ったアプリをビルドしようとすると「No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-…

タイマーを使って1秒間隔でシステム時間を取得する方法

1秒間隔でシステム時間を取得 「Timer」関数を使うと一定の間隔で処理を繰り返し実行させることができるので便利です。しかし、毎回僅かな遅延(1000分の数秒ほど)が発生しているので注意が必要です。それは、繰り返しの回数が増えれば増えるほど誤差が大…

GPSの使用権限「パーミッション」を取得する方法(Android 6.0~)

GPSの使用権限「パーミッション」を取得する方法 今回は、GPS(位置情報)の使用権限「パーミッション」を取得する方法の説明です。 以前は「インストール時」に使用権限を取得していましたが、Android 6.0(APIレベル23)からは「アプリを実行してから」必…

他のクラスの変数を参照して変更する方法

他のクラスの変数を参照して変更する方法 今回は他のクラスにある変数を直接的に参照して変更する方法を説明します。メインの MainActivity.class から 文字を表示しているオリジナルの View クラス(MyView.class)にある変数「yy」を参照して変更します。 …

Android Studio 3.1.3 でデザインのレイアウトが編集できない場合の対処方法

デザインのレイアウトが編集できない いつものように新規にプロジェクトを作成したにもかかわらず、ある日突然デザインがまったく表示されなくなりレイアウトの編集ができなくなる場合があります。 よく見ると、デザインエリアの右上にある「!」のエラーア…

音声を認識して結果をテキスト表示する方法(音声認識アプリ)

// // 簡単な音声認識アプリを作る 今回は、グーグルが提供している音声認識システムを使用した簡単な音声認識アプリを作ってみたいと思います。 詳細についてはコード内にコメントで記載してありますので、そちらをご覧ください サンプルコード①(MainActiv…

最初からバナー広告の表示スペースを確保した新規プロジェクトを作る方法

// // 広告の後付けでひと苦労してしまう・・・ アプリに表示するバナー広告は、過去の記事にあるようにアプリを作ってからでも「後付け」することができますが、広告用のアドオンを追加したり、マニフェストファイルを変更したり、コードを追加する必要があ…

Android Developers サイトでキーワードの「検索」ができなくなってしまった時の対処方法

// // 突然「検索機能」が使えなくなる? アンドロイドの開発者向けサイト(Android Developers)にはキーワードからリファレンスマニュアルを検索する便利な機能がありますが、何かの原因でまったく反応しなくなり検索ができなくなってしまう場合があります…

「通知」をタップした時に任意の処理を実行する方法

// // 通知をタップして処理を実行 今回は「通知」をタップした時に画面(Activity)を表示するのではなく、「任意の処理を実行する」というサンプルを作ってみたいと思います。基本的には以下のようなフローになっています。 <流れ> ① テキストボタンを持…

Androido 端末で使用可能なセンサーの一覧(2017年12月26日現在)

// // Android 端末のセンサー一覧(2017年12月26日現在) Sensor | Android Developers より抜粋した Android 端末で使用可能なセンサー(定数)の一覧です。各センサー下の説明は「Google 翻訳」で翻訳した後、若干の修正を加えたものとなっています。 全…

レイアウトXML に配置した SurfaceView 内でカウンターを動かしてみよう

// // 今回は SurfaceView のサンプル 今回はレイアウトXML の一部に SurfaceView を配置し、その SurfaceView の中でカンターを動かしてみたいと思います。MainActivity と SurfaceView の関係が若干わかりにくいかもしれませんが、 一度覚えてしまえば楽に…

Matrix の基本「Translate」の使い方を知ろう(その2)

// // Matrix の Translate を知る Matrix 関数の中に 「Translate」 というメソッドがあります。Translate を利用すると画像を任意の場所に移動することができますが、その使い方や使い道がよくわかりませんので、今回からその「Translate」について少しず…

Matrix の基本「Translate」の使い方を知ろう(その1)

// // Matrix の Translate を知る Matrix 関数の中に 「Translate」 というメソッドがあります。Translate を利用すると画像を任意の場所に移動することができますが、その使い方や使い道がよくわかりませんので、今回からその「Translate」について少しず…

ウィジェットにレイアウトした ImageView 画像が表示されないトラブルの対処方法

// // 今回は、自分が最近ウィジェットアプリを作っている時に見舞われてしまった、『ウィジェットにレイアウトした ImageView 画像が表示されない』というトラブルの対処方法です。 トラブルの原因は仕様変更 結局、このトラブルの原因はプログラムのミスや…