msaki

Androidアプリ開発

仮想デバイスか判定する

仮想デバイス(Android Virtual Device)で動作させるとExceptionが発生してアプリが終了することがあります。実行しているデバイスが仮想デバイスか判定して回避する方法を紹介します
Androidアプリ開発

動画ファイルのフレームレートを取得する

アプリで動画をコマ送りで再生する場合、動画ファイルのフレームレートの値が必要です。動画ファイルのフレームレートを取得する方法として、ExoPlayerのAnalyticsListenerを使用して、フレームレートを取得する方法を紹介します
Androidアプリ開発

RecyclerView スワイプ操作で画面遷移

ItemTouchHelperのスワイプでアイテムの削除とした場合は問題ありませんが、選択したアイテムで画面遷移とする場合に違和感があります。スワイプ操作でアイテムがリストから消滅しない、選択したアイテムで画面遷移する実装を紹介します
スポンサーリンク
Androidアプリ開発

String型協定世界時をlong型日時に変換する

日時をデータ管理する場合、long型日時が有効ですが、日時をインタフェースで受け取る場合、String型日時であることが多い。GPS受信機の標準インタフェースNMEAフォーマットのString日時を、long型日時に変換する方法を紹介します
Androidアプリ開発

shapeの枠線(stroke)の色を
グラデーションにする

Viewの背景(background)を修飾するshape要素(drawable)には、ストローク線(stroke)の色をグラデーションにすることはできません。layer-list要素を使用して枠線の色をグラデーションにする方法を紹介します
Androidアプリ開発

Spinnerのドロップダウンで
ナビゲーションバーを表示させない

全画面モードでシステムバー(ナビゲーションバーやステータスバー)を非表示にしていても、Spinnerのドロップダウンでシステムバーが表示されます。この現象を回避するシステムバーを非表示にするカスタムSpinnerの実装方法を紹介します
Androidアプリ開発

アプリのリリース後に
Roomのテーブルを変更する

Roomのマイグレーションでは変更前テーブルのスキーマ情報が必要です。変更前テーブルのスキーマ情報がない状態でマイグレーションするとマイグレーションが失敗します。exportSchema=falseでマイグレーションする方法を紹介します
Androidアプリ開発

Room(SQLite) データベースの実装

RoomはオープンソースデータベースSQLiteを抽象化レイヤとして提供するライブラリです。データベースの操作や定義、SQLの実行など、SQLiteを最大限に活用することが可能です。Roomの導入から使用方法をソースを参考に説明します
Androidアプリ開発

動画や音楽のファイル形式を変換する

AndroidスマホはMP4形式しか動画ファイルは再生できません。Android13からApple標準形式(AIFF)の音楽ファイルが再生できなくなっています。FFmpegでMP4形式に変換して、Androidで再生する方法を紹介します
Androidアプリ開発

ActionMenuViewで
サブメニューを実装する

選択できる機能メニューの数が多い場合、メニューを階層化して表示することはユーザビリティの向上として有効な手段です。ActionMenuViewでSubMenuを使用したメニューを階層化の実装方法について、説明します
スポンサーリンク