Android関連のことを調べてみた2023年03月07日

Android関連のことを調べてみた2023年03月07日
目次

【Kotlin】カスタムダイアログの作り方【Android】

## はじめに
Androidではデフォルトのダイアログが用意されていますが、細かいレイアウトの調整ができなかったりします。

ということで今回は、自作のレイアウトで自由にカスタマイズ可能なダイアログを作っていきます。

## 1.ダイアログ用のレイアウトファイルを作成

表示させたいダイアログのレイアウトをxmlファイルで作成します。

“`kotlin:custom_dialog.xml

Instagramの画像を日替わりでAndroidの壁紙にする

自分で上げたInstagramの画像を日替わりでAndroidの壁紙にランダムに設定します。
また、ついでに、ヤマレコでアップした画像も含むようにしました。

指定した頻度で起動するAndroidアプリと、Instagramまたはヤマレコから画像リストを取得してランダムに選択するNode.jsサーバからなります。

ソースコードもろもろは以下に置いておきました。

https://github.com/poruruba/AndroidWallpaperChanger

# Androidの壁紙の設定

壁紙の設定には、「WallpaperManager」を使います。

(参考)
https://developer.android.com/reference/android/app/WallpaperManager

画像はインターネットから取得します。HTTP Getで取得することを想定しています。
以下のように呼び出すと、InputStreamが取得できます。

“`java:Android\Wallpaper_Test\app\src\main\java\jp\or\myhom

元記事を表示

【Android】バイブを鳴らす【Kotlin】

# はじめに

https://qiita.com/Tsubasa12/items/a8bec7f5be4ebce9d033

https://qiita.com/Tsubasa12/items/722bbf31eb5266adc580

音を鳴らす関係で記事を他にも書いているのでそちらも観てください。

# ボタンを押したら音が鳴るようにする

“`MainActivity.kt
val button: Button = findViewById

元記事を表示

Android CameraX ImageAnalyzerをまとめる

## CameraXについてざっくり概要
呼び出し
“`kotlin
val cameraProviderFuture = ProcessCameraProvider.getInstance(this)
cameraProviderFuture.let { cameraFuture ->
cameraFuture.addListener(
{
/*
Set below instances
– selector
– use case
*/
// preview imageCapture imageAnalyzer …
try {
// Unbind use cases before rebinding
cameraProvider.unbindAll()

// Bind use cases t

元記事を表示

【JetpackCompose】Canvasで作った円形の背景にグラデーションを設定する方法

前回は通常の画面の背景にグラデーションを設定しましたが、今回は円形の背景にグラデーションを設定してみようと思います。

“`CircleGradation.kt
@Composable
fun CircleGradation() {
Canvas(
modifier = Modifier.size(80.dp),
onDraw = {
drawCircle(
Brush.verticalGradient(
listOf(
Color.Blue,
Color.White
)
)
)
}
)
}
“`

前回と同じく`Brush`を作成して`drawCircle`設定します。

![スクリーンショット 2023-03-05 12.36.53

元記事を表示

【kuromoji】Android(Kotlin)でスタンドアロンで形態素解析をする方法

# この記事を書いた経緯
Andoridで形態素解析をしたくて色々と調べていたのですが、

– 情報が少ない
– あっても情報が古くて、そのままだと動かない

という状況だったので、このような記事を書きました。

# 概要
Android端末でスタンドアロンで形態素解析をする方法を紹介します。
形態素解析には[kuromoji](https://www.atilika.com/ja/kuromoji/)というオープンソース日本語形態素解析エンジンを使います。

# 形態素解析とは
[Wikipedia](https://ja.wikipedia.org/wiki/%E5%BD%A2%E6%85%8B%E7%B4%A0%E8%A7%A3%E6%9E%90)では以下のような説明がなされています。
> 形態素解析(けいたいそかいせき、Morphological Analysis)とは、文法的な情報の注記の無い自然言語のテキストデータ(文)から、対象言語の文法や、辞書と呼ばれる単語の品詞等の情報にもとづき、形態素(Morpheme, おおまかにいえば、言語で意味を持つ最小単位)の列に分割し、そ

元記事を表示

Android12からのsplash screenに対応させる

# Android 12(API 31)からのsplash screenの変更
[Androidでスプラッシュ・スクリーンを出してみる](https://qiita.com/cozyk100/items/dc2b697a2d64aeeaf899)で、Androidでsplash screenを出す方法を紹介しましたが、Android12(API 31)からsplash screenの仕組みが変わっています。

これまでの上のURLで紹介した方法でもsplash screenは出せますが、端末のバージョンがAndroid 11(API 30)以下からAndroid12(API 31)に変わると共にsplash screenを表示させる方法を変更する必要があります。

公式ホームページ
[スプラッシュ画面](https://developer.android.com/about/versions/12/features/splash-screen?hl=ja)
[既存のスプラッシュ画面の実装を Android 12 以降に移行する](https://developer.android.co

元記事を表示

noobなスマホアプリ開発

# はじめに
 今までHSPとPythonを少しかじったことしかありませんがこれからの人生のためにアプリ開発をしてみることにしました。具体的な計画はまだ立っていませんが少しずつやっていけたらいいと思います。(こんな調子ではいつか地獄を見そうですが)
 Qiitaへの投稿も初めてです。Markdown記法なんて初めて知りました。

https://qiita.com/Qiita/items/c686397e4a0f4f11683d

# これから
 自分がわからなくて調べたことをまとめていく予定です。忘備録的利用を考えています。アプリ開発については諦めないことが当面の目標です。

元記事を表示

【ハンズオン資料】NCMBのKotlin SDKでカメラメモアプリを作る

NCMBでは公式SDKとしてSwift/Objective-C/Kotlin/Java/Unity/JavaScript SDKを用意しています。また、それ以外にもコミュニティSDKとして、非公式ながらFlutter/React Native/Google Apps Script/C#/Ruby/Python/PHPなど幅広い言語向けにSDKが開発されています。

今回は公式SDKの一つ、Kotlin SDKを使ってカメラメモアプリを作ってみます。

## ベースコード

下記URLからコードをダウンロード、またはgit cloneしてください。

“`
https://github.com/NCMBMania/kotlin-camera-memo-handson
“`

## ベースについて

今回はKotlin + Jetpack Composeの組み合わせになっています。また、NCMB利用部分以外のコードは記述済みです。

## Composeについて

今回は以下のComposeを用意しています。

– MemoBottomNavigation
– FormScreen

元記事を表示

Android 11 APIレベル30 からペアリングしたBluetoothデバイスの自分でつけた「名前」が取得できるメソッドが追加されていた

Androidの`BluetoothDevice`のメソッドには、アドレスを取得する`getAddress()`と`getName()`があって、接続に必要なアドレスはAPIレベル5からあったようですが、`getName()`の方はデバイスに元々つけられた名前しか返ってきませんでした。いくつかのBluetoothデバイスを切り替えたいときに、元々の名前が同じデバイスもあり、いちいちアドレスの番号を覚えていられないので自分で付け替えた後の名前が取得できないかな、と思っていたところ、「[ペアリングしたBluetoothデバイスの「名前」を取得する方法](https://qiita.com/tkt989/items/24b7721515d2864c97c5)」を見つけ、使っていました。

https://qiita.com/tkt989/items/24b7721515d2864c97c5

記事中に、

> `@hide`なメソッドなので使用する際は注意。

と書いてあったので、使えなくなったりするのかな、と思っていたのですが、最近Qiita記事を書く時に何気に見たら、API レベル30か

元記事を表示

JetpackCompose向けテストコード作成

# はじめに

* Android Studio でサンプルプロジェクトを作成した後、サクッとCompose向けのテストコードを実装したい人に向けた記事です。

# サンプルプロジェクトを作成

* Android Studio を起動
* File -> New -> New Project -> Empty Compose Activity を選択して、プロジェクトを作成

![Screenshot 2023-03-03 at 0.56.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126139/2e89dbc0-2423-7df6-2d58-cd2b5e7aff85.png)

# 初期状態を確認

## テストコード

“`kotlin
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@Test
fun useAppContext() {
// Context of the a

元記事を表示

Flutter で Android戻るボタンを使うとアプリが落ちてしまう対処法

これでいけるよ。

“`onWillPop.dart
Future _onWillPop() async {
final isFirstRouteInCurrentTab =
!await _navigatorKeys[_currentTab].currentState.maybePop();
if (isFirstRouteInCurrentTab) {
if (_currentTab != TabItem.home) {
_onSelect(TabItem.home);
return false;
}
}
return isFirstRouteInCurrentTab;
}
“`

?

元記事を表示

[Unreal Engine 4.26.2] Google Play ConsoleへAndroidのアプリを提出するときに発生したエラーの改善方法のメモ

# 目次

1. [はじめに](#はじめに)
1. [開発環境](#開発環境)
1. [APIレベル31以上にした状態でビルドをする方法](#apiレベル31以上にした状態でビルドをする方法)
1. [aabファイルに署名を追加する際のエラー](#aabファイルに署名を追加する際のエラー)
1. [aabファイルが150MB以下でなければアプリを提出できないエラー](#aabファイルが150mb以下でなければアプリを提出できないエラー)
1. [64または32ビットの対応ができていないエラー](#64または32ビットの対応ができていないエラー)
1. [GooglePlayBillingLibraryのエラー](#googleplaybillinglibraryのエラー)
1. [おわりに](#おわりに)

# はじめに

Unreal Engineで開発したゲームをGoogle Play Consoleへ公開しようとしましたが、ゲーム開発初心者の私には色々と分からないことが多かったので、他の方々が参考にしていただくための記録を残そうと思い

元記事を表示

Kotlinで書いたGradleプラグインをビルド時に呼び出せるようにする

今回の記事はこの記事の続きです。

https://qiita.com/takagimeow/items/7471d87fb5e9db76b5ae

`AndroidApplicationComposeConventionPlugin`というクラスを**build-logic/convention/src/main/kotlin/com/takagimeow/myapplication/AndroidApplicationComposeConventionPlugin.kt**に作成しました。

“`md
– build-logic
– convention
– src
– main
– kotlin
– com/takagimeow/myapplication
– AndroidApplicationComposeConventionPlugin.kt
“`

`package`の記述はありません。

内容としては

元記事を表示

AndroidStudioでbuild-logicモジュールのbuild.gradle.ktsが正しく認識されない

AndroidStudioで、とある開発中のプロジェクトに**build-logic**モジュールを作成しました。

ディレクトリの構造は次のとおりです。

“`md
– build-logic
– convention
– src
– main
– kotlin
– com
– takagimeow
– app
– build.gradle.kts
– gradle
– gradle.properties
– settings.gradle.ts
“`

そして、作成した**build.gradle.kts**を開くと次のようにハイライトされていない状態で表示されていました。

![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/577119/3833692d-6df2-5c3b-a0b9-f9

元記事を表示

AndroidNDKを使ってC言語を動かす

## AndroidNDKをつかってC言語を動かす
– Hello World的なものは出たので、次は独自コードを書いて動かしたい

## 環境
Android Stuido Dolphin

## やっていく
方針:C言語でバブルソートを書いて処理が終わったら配列最初の数字をエミュレータに出す

### とりあえずhello worldまで出せる
以下記事でとりあえずhelloworld的なものが出せるようにする

https://qiita.com/misuzz/items/c619d55a35d50e36e22a

### Cのファイルを作成する
cppの下でcファイルを作成
ファイル名に.cを付けてください

![スクリーンショット 2023-02-28 11.19.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/731109/560ccda7-7bfc-a8f5-3489-44204fe2fe5c.png)

![スクリーンショット 2023-02-28 11.19.59.png](htt

元記事を表示

Android NDKの使い方、さくっととりあえずHello world出す

## NDKを入れるとできること
https://developer.android.com/ndk?hl=ja
– CとC++言語ファイルが作れ、Kotlinから実行できる。
– 処理速度を早めたりC,C++で書いたコードを再利用できる

## 私の環境
Android Studio Dolphin

## やってみる
### new projectする
Android StudioでNew projectする

### 画像右下のNative C++を選択してnext
![スクリーンショット 2023-02-28 10.30.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/731109/cae77ac7-c199-8182-1b0f-a86b7ab8cab3.png)

### すきなプロジェクト名をつけて好きな場所に置いてnext
minimumSDKはいじらなくて大丈夫です

![スクリーンショット 2023-02-28 10.32.01.png](https://qiita-image-

元記事を表示

【Android】端末の位置を測定する

# はじめに
Android端末の位置を測定する方法について解説。
加速度センサーと地磁気センサーを組み合わせることで、端末の位置を測定。

https://developer.android.com/guide/topics/sensors/sensors_position?hl=ja

# コード

* センサーイベントリスナー(`SensorEventListener`)インターフェースを継承。
* センサーマネージャー(`sensorManager`)を定義し、`onResume`時にリスナーを登録、`onPause`時にリスナーを解除する。
* `onSensorChanged`メソッド内で端末の位置を測定。

“`MainActivity.kt
class MainActivity : AppCompatActivity(), SensorEventListener {
/** ViewBinding */
private val binding by lazy { ActivityMainBinding.inflate(layoutInflater) }

/**

元記事を表示

[Android] [Kotlin] スプラッシュ画面とログイン画面の実装(毎度ログインしなくていい方法)

# できたこと
ログインが必要なアプリで、起動時毎にログインするのめんどくさいですよね。
そしてアプリの起動時といえば、スプラッシュ画面。
スプラッシュ画面の後ログイン画面に行くのか、それともログイン不要にしてメイン画面に行くのか
そんな時に使える方法です。
アプリ起動時にスプラッシュ画面を表示させ、
ログインしたことあるならログイン画面によらず、一気にメイン画面を表示させ、
ログインしたことない場合は、そのままログイン画面を表示させます。

まずは軽くSplashScreenの説明から(^^)
# SplashScreenのテーマ属性
| 属性名 | 内容 |
| — | — |
| windowSplashScreenBackground | スプラッシュ画面の背景色。 |
| windowSplashScreenIconBackgroundColor | スプラッシュ画面のアイコンの背景色。 デフォルト値は `@android:color/transparent` 。また、この項目は Theme.SplashScreen.IconBackground テーマでのみ有効とな

元記事を表示

カメラ動画をCamera2APIでSurfaceViewに映す

# はじめに

Androidのカメラに写っている動画をレイアイとに表示するということをしたので、そのときのメモを記述する。

[camera2](https://developer.android.com/training/camera2) APIを使ってレイアウトの `` に表示させる方法について記述する。

`` に表示させる方法もあるが、ここでは `` についてのみ記述する。

ちなみに、Camera2 は低レベルAPIなので、高レベルAPIの [cameraX](https://developer.android.com/training/camerax?hl=ja) というのもある。

# 処理の概要説明

ActivityでCamera2を使ってSurfaceViewに動画を流し込むので、Activity側とSurfaceView(レイアウト)側でそれぞれ処理を記載する必要がある。

## Activity側

下記の処理の流れになる。

1. CameraManager で使うカメラを指定

元記事を表示

OTHERカテゴリの最新記事