サンプルコード
今回は CameraX にマニュアルフォーカス機能を追加する方法を解説します。これから CameraX でカメラアプリを作ろうと考えている方は、ぜひこちらを参考にして時間を節約してください。 ※なお、CameraX によるカメラアプリの基本ベースは、以下の2つの記事…
今回は CameraX にズーム機能を追加する方法を解説します。これから CameraX でカメラアプリを作る方は、ぜひ、参考にして時間を節約してください。 ※なお、CameraX によるカメラアプリの作り方の基本形は、以下の2つの記事を参考としていただければと思い…
CameraX は基本的に「露出」「ホワイトバランス」「フォーカス」が自動になりますが、「Camera2CameraControl」を取得して「CaptureRequestOptions」で「CONTROL_MODE_OFF」をリクエストすることで、「露出」「ホワイトバランス」「フォーカス」を手動設定(…
今回はGPSを利用した単純な速度計の作り方のポイントをご紹介します。以前は LocationManager を取得して LocationListener の onLocationChanged でデータを取得しましたが、現在は FusedLocationProviderClient の LocationCallback でデータで取得するよ…
既存のアプリにバナー広告を追加する方法の説明です。バナー広告を追加する基本的な方法は以前からあまり変わっていませんが、Google Mobile Ads SDKのバージョンが「17.0.0」の場合に限りマニフェストファイルに必ず追加しなければならない設定があるので注…
インテントサービスは停止するまでバックグラウンドで動き続ける通常のサービスと違い、処理が終わると「自動終了」してくれるので、いちいちサービスを停止させるコードを書く必要がありません。使い道はいろいろありますが、特にバックグラウンドでダウン…
今回は、端末に内蔵されている着信音、通知音、アラーム音の名前を ListView に一覧で表示し、その一覧からタップされたサウンドが再生されるアプリを作ります。 必要なクラスやオブジェクトなどは以下です。 RingtoneManager ・・・内蔵サウンドの管理 Ring…
setAlarmClock とは? setAlarmClock は AlarmClockInfo でスケジュールされた時間に指定のペンディングインテントを実行するクラスです。この setAlarmClock はシステムが低電力アイドル状態(dozeモード)になっていても正確にトリガーされるので、正確な…
カレンダー「Calendar」とは? カレンダーは、セットした日時の「1970年1月1日00:00:00 GMT からの経過時間」をミリ秒で取得することができるクラスです。またその逆に、取得したりセットした特定日時のミリ秒から年月日や時間を取得することも可能です。 <…
新しいアクティビティを開始する 新しいアクティビティを開始するには「startActivity()」メソッドを使います。 サンプルコード(MainActivity.java) ※詳しい説明はコード内のコメントを参照してください。 public class MainActivity extends AppCompatAct…
現在のアクティビティを終了する 現在のアクティビティを終了するには「finish()」メソッドを呼び出します。 サンプルコード(MainActivity.java) ※詳しい説明はコード内のコメントを参照してください。 public class MainActivity extends AppCompatActivi…
「通知」を発行する方法 今回は、画面の上部にある通知領域に「通知」を発行して表示する方法です。APIレベル26以上とそれ未満では発行の方法が少し違っているので、「if文」を使って振り分けています。 サンプルコード①(MainActivity.java) APIレベル26か…
タップで画像が切り替わるウィジェット 今回はウィジェットをタップすると、その中に配置してある ImageView の画像が切り替わるウィジェットを作ります。ホーム画面に配置されたウィジェットを変更する方法はいくつかありますが、今回はウィジェットが自分…
ビットマップ画像を中心を軸に拡大・縮小する 今回は、オリジナルの View(MyScale.class)に配置したビットマップ画像をマトリックス(Matrix)を使って画像の中心を軸に拡大・縮小します。View に配置したビットマップ画像の中心を軸に拡大・縮小する方法…
ビットマップ画像を連続回転させながら移動する 今回は、オリジナルの View(MyNewViewView.class)に配置した画像を、マトリックス(Matrix)を使い連続回転させながら移動するサンプルです。View に配置したビットマップ画像の回転や移動の方法がよくわか…
マトリクスでビットマップ画像を連続回転させる 今回は、オリジナルの View(MyNewView.class)に配置した画像を、マトリクス(Matrix)を使用し同じ位置で連続回転させるサンプルです。View に配置したビットマップ画像の回転方法がわからない・・・という…
画面の回転に対応する方法 アンドロイドアプリは画面を回転(横位置 ⇔ 縦位置)させると、自動でアクティビティが再起動される仕組み(仕様)になっているため、変数のデータも破棄されてしまいます。 そのため、画面の回転に対応するには、回転の直前に呼び…
端末のバッテリー充電レベルを監視する バッテリーの充電レベルを監視するには、バッテリーの充電レベルが変化するたびに端末から発信されるバッテリー充電レベルのインテントをブロードキャストレシーバーで受信する必要があります。 <流れ> 1.端末のバ…
ブロードキャストレシーバーの使い方(その2) ブロードキャストレシーバーは端末が発信している様々なメッセージや情報を受信するクラスです。これを利用すると、時間やタイムゾーンの変化、バッテリーの残量や充電状態など、細かな端末の状態を知ることが…
ブロードキャストレシーバーの使い方(その1) ブロードキャストレシーバーは、端末がアプリ向けに発信している様々なメッセージや情報を受信するクラスです。 これを利用すると、時間やタイムゾーンの変化、バッテリーの残量や充電状態など、端末の細かな…
「ムーブイベント」を検出する スマートフォンやタブレットの画面をタッチしたまま指を動かす「ムーブイベント」を検出するには View クラスの「onTouchEvent」メソッドの中で「MotionEvent.ACTION_MOVE」アクションを取得します。 サンプルコード①(MainAct…
画面がタッチされた時にX座標とY座標を取得する スマートフォンやタブレットの画面がタッチされた時にX座標とY座標を取得するには「View」クラスの「onTouchEvent」メソッドを使用します。 サンプルコード①(MainActivity.java) 詳しい説明はコード内のコメ…
押されたキーの「キーコード」を取得する スマートフォンやタブレットの物理的な「キー」が押された時に、そのキーコードを取得するには「View」クラスの「onKeyDown」イベントを利用します。この「onKeyDown」イベントはソフトウェアキーボードのコードも取…
音楽を再生するアプリの作り方 今回はメディアプレイヤーを使って音楽を再生するアプリを作ってみます。音楽を再生するアプリと聞くといろいろと難しいのでは・・・と考えてしまいがちですが、一つの曲を単純に再生するだけならとくに難しい技術は必要ありま…
基本的なサービスの使い方 今回は「サービス」の基本的な使い方です。「サービス」というのは長時間バックグラウンドで動きインターフェース画面を持たないアプリケーションです。基本的な作り方は意外に簡単で、サービスを継承したクラスを作った後、それを…
GPSを利用したスピードメーター(速度計) 今回はGPSを利用したシンプルなスピードメーター(速度計)の作り方です。 Android Java には現在の速度を「m/s」単位で取得できる関数「getSpeed」があるので、GPSの位置情報から速度を計算する必要はありませんが…
ブラウザを起動するボタンを作る 今回はボタンをクリックするとブラウザが起動して「Yahoo!」サイトを表示するサンプルを作ります。 動作の流れは、Uriに「Yahoo!」のアドレスをセットし、UriをセットしたIntent(ACTION_VIEW)を作成して、最後にそのIntent…
バッテリーの状態を取得する 今回はスマートフォンのバッテリー状態を取得する方法の説明です。 バッテリーの状態はスティッキーインテントなのでブロードキャストレシーバーが無くても取得ができるようになっていますが、バッテリーの状態の変化を常に監視…
1秒間隔でシステム時間を取得 「Timer」関数を使うと一定の間隔で処理を繰り返し実行させることができるので便利です。しかし、毎回僅かな遅延(1000分の数秒ほど)が発生しているので注意が必要です。それは、繰り返しの回数が増えれば増えるほど誤差が大…
GPSの使用権限「パーミッション」を取得する方法 今回は、GPS(位置情報)の使用権限「パーミッション」を取得する方法の説明です。 以前は「インストール時」に使用権限を取得していましたが、Android 6.0(APIレベル23)からは「アプリを実行してから」必…