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

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

AndroidでFirebaseに文字をInsertする

# はじめに
WebからAndroidに入るような人って、まず、Androidの端末からHelloWorldを、Firebaseに送りたいのよ。なんでかQiitaにもUdemyにもシンプルにミニマルに書いてあるってないのよー

# 前提条件
全部最新版でいい(とりあえず)
・AndroidStudioは一番新しいのを入れろ
・Targets API level 16+ を入れろ
・Uses Gradle 4.1+ を入れろ
・Uses Jetpack (AndroidX) を入れろ
・compileSdkVersion 28+ を入れろ

# Androidプロジェクト作成
## Create New Project
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/94562/f5125b45-7783-ac4b-5a9f-c66e0ee380fa.png)
## Empty Activity
![image.png](https://qiita-image-store.s3.ap-nor

元記事を表示

Kotlinでカスタムしたダイアログからコールバックを受ける

#レイアウトをカスタムしたダイアログからコールバックを受ける
・自分で作ったレイアウトをダイアログアラートに適応します。
・ダイアログでOKボタンが押されたら、メインアクティビティでコメントをprintlnします。

“`Kotlin:MainActivity.kt
//ダイアログ側で設定したインターフェースを実装
class MainActivity : AppCompatActivity(), TestDialogFragment.TestDialogListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

//ダイアログの起動ボタン
val btn = findViewById

元記事を表示

[Android][Java]ボタン付きのカスタムセルのListViewを作成する

ボタン付のカスタムしたセルでListViewを作成する方法を記載します。
リスト表示する場合にはRecyclerViewの方が柔軟に様々な事ができますが、その分実装量が多くなるため、簡単に実装ができるListViewについて書いていきます。
完成イメージは以下です。

AndroidStudioで空のアクティビティを作成した状態から始めます。
#1.layout/activity_main.xmlにListViewを定義する
空のアクティビティを作成すると、ConstraintLayoutだけが定義されている状態なので、以下のようにListViewを定義します。

“`activity_main.xml

元記事を表示

[Android/Java] Jetpack LifecycleObserver

Android Studio 4.1.3(windows版) で動作確認しています

Jetpack LifecycleObserverの簡単な説明とサクッと試すためのコードです

Android DeveloperのLifecycleObserverの説明は以下です

https://developer.android.com/topic/libraries/architecture/lifecycle?hl=ja

getViewLifecycleOwner()についてはこちら

https://developer.android.com/reference/androidx/fragment/app/Fragment#getViewLifecycleOwner()

## 確認用コード
各イベント/イベントの引数は省略できます
Lifecycle.Event.ON_ANYはすべてのイベントを受け取れて
Lifecycle.Event.ON_ANYのみ引数でLifecycle.Eventを指定できます
getCurrentState()で現在のLifecycleの状態も取得できます

元記事を表示

【Kotlin 初心者】font-familyで余白が入った場合の対処方法

## font-familyで余白が入った場合の対処方法
font-familyを指定した際に意図しない余白があり困ったので、この記事を書きました:point_up_tone2:

結論から言うと下記のプロパティを書くと解決します。

“`
android:includeFontPadding=”false”
“`

fontによっては初期でandroid:includeFontPaddingがtrueになっているみたいです。
ざっくりとですが、android:includeFontPaddingの初期値がtrue,falseのfont一覧を書きました

| true | false |
| —- | —- |
| noto_sans_cjk_jp_medium | hiragino_kaku_gothic_pro_n_w_3 |
| – | yu_gothic_bold |
| – | roboto_medium |

元記事を表示

BindingAdapterで「Caused by: java.lang.IllegalStateException: Required DataBindingComponent is null」

DataBindingでBindingAdapterを使っていると、以下のエラーが発生することがあります。

“`kotlin
Caused by: java.lang.IllegalStateException: Required DataBindingComponent is null in class ActivityMainBindingImpl.
A BindingAdapter in com.example.sample.BindingAdapter is not static and requires an object to use, retrieved from the DataBindingComponent.
If you don’t use an inflation method taking a DataBindingComponent, use DataBindingUtil.setDefaultComponent or make all BindingAdapter methods static.
“`

これは`@JvmStatic`がないことに

元記事を表示

【IOS , Android】React-Nativeで設定画面に遷移する

## 前提条件
– React-Nativeの環境を構築済み
– エミュレーターをIOSとAndroid両方立ち上げられる

## 実装方法
わかりやすいようにonPressした際に設定画面に遷移させます
下記ではButtonを押しても特に何も起きません

“`js:App.js
import React from ‘react’;
import {StyleSheet, View, Button} from ‘react-native’;

const App = () => {
return (

元記事を表示

Activityを保持しない場合のonActivityResult

# はじめに
Activityを保持しない場合も動作するように修正しようとしたら、ハマってしまい苦労したので備忘録として書きます。

Intentで他のアプリを起動した場合など、Activityがバックグラウンドに移動した時にメモリが足らなくなると、
もともと起動していたアプリ(Activity)を終了してメモリを確保するみたいです。
この時、アプリが復帰する動作が通常とは異なる動きをするので注意が必要です。
ただ、裏ですごいリッチでグラフィカルなゲームを起動してるとか、動かしてるアプリがめちゃめちゃメモリ喰うとか、端末が古くてすごい非力な場合とかの少し特殊な場合でしか起こり得ないことなので気づきにくいかもしれません。

# 結論
onActivityResultとonStartの呼び出し順が変わるので注意!!

## 再現方法

開発者向けオプションから「アクティビティを保持しない」の項目をONにすることで、Activityがバックグラウンドに移動した場合に常に終了するようにできます。

## ライフサイクル

Activityを保持する/しないの両方共動くようにしようとしたら、思っ

元記事を表示

Kotlinで文字列を選択できるドラムロールをシンプルに実装

#NumberPickerを使ってドラムロールを実装する
Kotlinならドラムロールはわりと簡単に実装できます。

##ドラムロールを実装

レイアウトにドラムロールとなるNumberPickerを追加します。

“`Xml:activity_main.xml

“`

onCreateメソッドでNumberPickerに文字列をセットしていきます。

“`Kotlin:MainActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

//ドラムロール表示用の配列作成
val fr

元記事を表示

[Android/Java] Jetpack LiveData (Jetpack ViewModel MVVM+Repositoryパターン)

Android Studio 4.1.3(windows版) での流れとなります

ここではMutableLiveDataをRepositoryで持ち単純なデータのModelを扱うだけの
シンプルな構成で一連の流れを説明します

以下の記事のプロジェクトベースでの説明となります

https://qiita.com/smurata_pvt/items/a8454cc635ba693df6b8

Android DeveloperのJetpack LiveData/MVVM+Repositoryパターンの説明は以下です

https://developer.android.com/jetpack/guide?hl=ja

## Layoutの準備
ここではViewBindingを使用して実装します
ViewBindingの設定方法を知りたい方は以下を参照してください

https://qiita.com/smurata_pvt/items/99cd5f878b4eedb84dc8

MainFragmentのテンプレートにあるTextViewはidが指定されていないため
ここではtext

元記事を表示

backgroundとbackgroundTintの違い

# `android:background`

背景として使用するドローワブルで、描画可能なリソース(PNG画像、9パッチ[^2]、 シェイプドローワブル[^1]、色を指定します。

色の形式は「`#rgb`、`#argb`、`#rrggbb`、`#aarrggbb`」があります。

#`android:backgroundTint`

backgroundにカラーフィルターをかけて色を変化させることが出来ます。

例えば、`android:background=”#FF0000″`(赤)で、`android:backgroundTint=”#00FF00″`(緑)を指定すると、`#FFFF00(黄色)`になります。

> [3原色と色度図より](https://www.shokabo.co.jp/sp_opt/spectrum/color3/color3.htm)

色の形式は`android:background`と同じく、「`#rgb

元記事を表示

UnityでFacebookSDKのAndroidでログインエラーの解決方法

# 概要
UnityでFacebookSDKを使用してAndroidでログインエラーが出てしまう問題の解決方法

# 問題点
KeyStoreの作り方がFacebookで紹介されているものと別であったため、Unity上で表示されたキーハッシュが間違っていた

# 解決方法
確実なキーハッシュの取得方法はIResultのRawResultの中に記載されている

“`
// 初期化等は割愛

FB.LogInWithReadPermissions(・・・, OnLogin);

void OnLogin(IResult result)
{
// こいつを確認する!!!
Debug.Log($”Raw:[{result.RawResult}]”);
}
“`

# その他エラー解消のための参考文献
[公式](https://developers.facebook.com/docs/unity/getting-started/android)
[ザ・ゆるふわ](http://ado3s.hatenablog.com/entry/2016/11/07/015736)
[cloudpa

元記事を表示

[Android/Java] Jetpack Navigation 画面遷移とFragment間のデータ受け渡し

Android Studio 4.1.3(windows版) での流れとなります

以下の記事のプロジェクトベースでの説明となります

https://qiita.com/smurata_pvt/items/a8454cc635ba693df6b8

Android DeveloperのJetpack Navigationの画面遷移とFragment間のデータ受け渡しの説明は以下です

https://developer.android.com/guide/navigation/navigation-pass-data?hl=ja

https://developer.android.com/jetpack/androidx/releases/navigation

## SafeArgs を追加する
※ 現時点ではandroidx.navigation:navigation-safe-args-gradle-pluginをimplementationでは動作しないようです
※ androidx.navigationのバージョンに合わせて設定してください

“`build.gradl

元記事を表示

android:translationX(translationY)とは

`android:translationX(translationY)`は、「座標」を使ってViewを位置を指定する属性です。

android:translationX(translationY)共に、画面中央を0として「X座標」「Y座標」を指定します。

[リファレンス](https://developer.android.com/reference/android/view/View#attr_android:translationX)によると、「px/dp/sp/in/mm」を指定出来るとのことです。

# 使い方

まずは、何も設定していない状態です。

`android:translationX=”100dp”`を指定すると、右側に「100dp」だけ移動します。

【Kotlin 初心者】アプリにロゴを設置する方法

## アプリにロゴを設置する方法
アプリを作る際には必ずロゴを設置しなければいけません。
手順はとても簡単です。

Android Studioなら簡単にロゴを設定できます。

– 参考URL
https://developer.android.com/studio/write/image-asset-studio?hl=ja

## 手順
– app > res > New > image Assetをクリック

– このような画面が出てきます

元記事を表示

【Kotlin 初心者】カメラ、ローカルの画像を表示するには

## Androidアプリでカメラ、ローカルから画像を表示する方法
シンプルにファイル or カメラのどちらかを選択し画像を表示してみます

– 参考URL
https://developer.android.com/training/camera/photobasics?hl=ja#TaskGallery

## イメージサンプル

– カメラを機能を有効にする

“`



“`

“`activity_main.xml

元記事を表示

海外のPlayストアのランキングを見る方法(クエリ使うだけ)

以前アフリカのザンビアに住んでいたことがあるのですが、ふと、「**ザンビアでの今のGooglePlayストアのランキングってどうなってるんだろ**?」と気になりました。

ググるとプロキシ変える方法やApp Annieを使う方法が出てきましたが、PlayStoreのURL( https://play.google.com/store/apps/top )にクエリ(`?hl=ja&gl={2文字の国コード}`[^1])を加えるだけでも国外のPlayストアの情報を見ることができるようです。
※国コードである根拠はないのですが、挙動見る限り合ってそう。

– US
– https://play.google.com/store/apps/top?hl=ja&gl=US
– ザンビア
– https://play.google.com/store/apps/top?hl=ja&gl=ZM
– ロシア
– https://play.google.com/store/apps/top?hl=ja&gl=RU
– 中国
– https://play.google.com/sto

元記事を表示

github actionsでunityビルドしてiOSとAndroidのストアに自動的に提出する

こんにちは。[virapture株式会社](https://virapture.com)の[もぐめっと](https://twitter.com/mogmet)です。

![mogmet.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42234/a7a01e3a-d281-9b12-f3ec-9882a8dae412.jpeg)

この記事を書いてるときは冬なんですけど、もう自分の写真がなさすぎて夏までさかのぼってしまいました。

本日は[CI/CD with Unity, GitHub Actions, and Fastlane](https://medium.com/@davidmfinol/ci-cd-with-unity-github-actions-and-fastlane-e7aaa337784)という記事を参考にUnityでの自動ビルドとストア提出を作ってみたのでそのメモ書きを残しておきます。

## 概要

UnityにはUnity Cloud Buildという公式のCIがあるのですが、

元記事を表示

VLC for Android:楽曲管理画面の解析

# はじめに

VLC for Androidの楽曲管理画面を解析する。ゴールは登場するクラスの洗い出しと関連性のざっくりとした把握。

# 各種リンク

[アプリ](https://play.google.com/store/apps/details?id=org.videolan.vlc&hl=ja&gl=US)
[GitHub](https://github.com/videolan/vlc-android)
[公式サイト](https://www.videolan.org/index.ja.html)

# 楽曲管理画面のスクリーンショット

WIP

# 楽曲管理画面のオブジェクト図

こんな感じ。赤いオブジェクト図は楽曲管理部分
ざっくりいうとリポジトリクラスの状態を監視して、各モデルクラスのインスタンスを取り出してUIに反映している。

![Class Diagram0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/39706/83175a3a-f2c3-dd9b-f08f-01b5a6

元記事を表示

[Android/Java] Jetpack DataBinding

Android Studio 4.1.3(windows版) での流れとなります

Jetpack DataBindingでボタンイベントを設定する方法を例にして説明します

Android DeveloperのJetpack DataBindingの説明は以下です

https://developer.android.com/topic/libraries/data-binding?hl=ja

## 準備
以下を参考にJetpack Navigation + ViewModelを作成してください

https://qiita.com/smurata_pvt/items/a8454cc635ba693df6b8

## DataBindingを使用するための設定
build.gradleに以下を追加します
DataBindingを有効にするとBindingクラスが自動生成されます

“`build.gradle
android {
dataBinding {
enabled = true
}
}
“`

## ViewModelでの準備
ボタンイベ

元記事を表示

OTHERカテゴリの最新記事