Android アプリ開発 「MATRIX」

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



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

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

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 画像が表示されない』というトラブルの対処方法です。 トラブルの原因は仕様変更 結局、このトラブルの原因はプログラムのミスや…

端末で利用できるセンサーの一覧と詳細を取得してスクロール表示する方法

// // 今回は、端末で利用できるセンサーの一覧を取得して表示してみたいと思います。 スマートフォンに内蔵されているセンサー数は10種類前後と多く、詳細を含めて表示すると画面からはみ出してしまいますので、TextViewをスクロールさせる必要があります。…

画面の「タッチ中」を検出する方法

// // 今回は画面がタッチされている状態を検出する方法です。 ユーザーの画面操作を検出するには「onTouchEvent」メソッドを利用し、この onTouchEvent が受け取る MotionEvent の種類で処理を振り分けます。 サンプルコード①(MainActivity.java) MotionE…

TextToSpeech の speak で音声読み上げに失敗する原因と対処方法

// // 原因は音声データの未インストール TextToSpeech の speak で音声読み上げに失敗する原因はいろいろあると思いますが、自分がハマったのは、端末に「音声データ」をインストールしていなかったために、ネットワークを無効(オフライン)にしてしまうと…

Android Studio 3.0 にアップデートしてレイアウトXMLのプレビューに不具合がでた場合の対処方法

問題の内容 Android Studio のバージョンを「3.0」にアップデートしたところ、レイアウトXMLファイルのプレビューがグレーだけになってしまい、プレビューしながらの編集できなくなってしまった。※ちなみに、テキスト表示による編集は可能。 プレビューがグ…

apkファイルが見つからず実行エラーが出る場合の対処方法

開発環境が変わると面倒なことに・・・ アンドロイドアプリを開発するPCが変わったり、プロジェクトが入ったHDDドライブ名が変わったり、プロジェクトを移動したり、Android Studioを再インストールしたりすると、エラーが出てせっかく開発したアプリのRun(…

タイマーを使ってテキストビューの文字サイズを連続変更してみよう

// // 今回は、タイマーを使ってテキストビューの文字サイズを連続変更する方法です。 画面のレイアウトは「activity_main.xml」に、制御プログラムは「MainActivity.java」に書かれています。 タイマー処理は別スレッドになるためタイマー処理の内部からメ…

簡単にタッチパネルのイベントを検出する方法

今回は簡単にタッチパネルのイベントを検出する方法です。タッチイベントの検出はとても簡単で、プログラムの中で「onTouchEvent」メソッドをオーバーライドするだけです。 サンプルコード(MainActivity.java) public class MainActivity extends Activity…

ビットマップ画像をそのままのサイズで画面に出力する方法

今回はビットマップ画像をそのままのサイズで画面に出力する方法です。 ビットマップ画像を画面に出力するとサイズが自動で変更されてしまい調整に苦労する場合があります。そんな時は、BitmapFactoryのオプションで自動的なサイズ変更処理をカットしてしま…

Viewクラスで画面(canvas)に複数の円を描く方法

Viewクラスで画面(canvas)に複数の円を描く方法です。円はプログラムで生成されたViewのcanvasにdrawCircleで直接に描かれる仕組みです。 MainActivity.java 起動直後にこのMainActivity.javaが実行される。今回はレイアウトファイル(*****.xml)ではなく…

LEDライトを点灯させる方法(Android 6 以降)

LEDライトを点灯させる方法(Android 6~の場合)です。APIでいうと23以降で使用きる方法です。それ以前の端末には対応していませんのでご注意ください。 画面中央に配置したボタンを押すと点灯と消灯が切り替わる仕組みになっています。 プログラムコード(…

Andoroid Javaの基本データ型のまとめ

// // Andoroid Javaの基本データ型のまとめ。 整数型 byte ・・・ - 128 ~ 127short ・・・ - 32768 ~ 32767int ・・・ - 2147483648 ~ 2147483647long ・・・ - 9223372036854775808 ~ 9223372036854775807 例)int a;a = 10000;int b = 20000; 浮動小…