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

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

マテリアルデザイン の カラーテーマシステマ

カラーコードの表記の横に実際の色を入れておきます。あと簡潔な日本語に。

### カラーテーマシステマを使え

|属性|説明|デフォルト値|
|:–|:–|:-:|
|colorPrimary| アプリで最も使われる色。表面色、背景色より上に描画されます。|`#6200EE`|
|colorPrimaryVariant|colorPrimary のバリエーション。|`#3700B3`|
|colorOnPrimary|colorPrimary 上のテキスト/画像の色。|`#FFFFFF`|
|colorSecondary|セカンダリブランディング色。通常は colorPrimary を強調した補色。|`#03DAC6`|
|colorSecondaryVariant|colorSecondary のバリエーション。|`#018786`|
|colorOnSecondary|colorSecondary 上のテキスト/画像の色。|`#000000`|
|android:colorBackground|スクロール可能なコンテンツの背景色。|`#FFFFFF`|
|colorOnBa

元記事を表示

【Android初心者】intent で画面遷移ができない…setContentViewを理解していないことが失敗の原因

Androidアプリ開発の教科書Kotlin対応 を参考にAndroidのアプリについて勉強しています
7章 画面遷移とIntentクラス ではまった
はまっていた当時の[コード](#code)

![概要.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/600486/28293a48-bdcc-bef8-a532-6c43614485c9.png)

目的の動作は上記の絵の通り。
ビルドは問題なくできているのに、、、

「から揚げ定食」を押した際のlogcatを見てみると、たくさんのエラーが、、、、 [logcat](#logcat)
結果的に以下のエラーを読んだことが修正のきっかけになりました。

“`
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.masashi.things.intentsample/com.masashi.things.intentsample.MenuThanksActiv

元記事を表示

Unity(Vuforia)でAndroid向けの簡単なAR表示アプリを作る方法

#はじめに

UnityでAndroid向けの簡単なAR表示アプリを作ります。
今回はマーカー画像を読み取って3Dモデルを表示できるようにします。
Unityのバージョンによってやり方が異なるようなので、本記事を参考にする際は下記の環境を参照してください。
また、本記事ではUnityが既にインストールされており、プロジェクト作成をできる状態を想定しています。

#環境

+ Windows10
+ Unity 2019.2.18f1
+ Android SDK & NDK Tools
+ Vuforia Endine AR 8.5.9 (ARコンテンツを作成するためのライブラリ)
+ Android 9.0

#必要な物

+ Unity (バージョンは上記の通り)
+ Android端末 (Androidの開発者モード設定などを済ませておく)
+ マーカーにする画像

#準備

Vuforia Engine ARというライブラリからDevelopment Keyを取得しておきます。

###アカウントの作成
[こちら](https://developer.

元記事を表示

ConstraintLayout + ConstraintSetを使ったキーフレーム アニメーション

今まで凝ったデザインとか、アニメーションとか何も使わないで生きてきた人生だったので、最近レイアウト周りで苦労しています。なので、きちんとレイアウトの勉強をしようと思って公式Android developerのレイアウトの章を読み始めました。[ConstraintLayout](https://developer.android.com/training/constraint-layout?hl=ja)の章を読んでいて、**ConstraintSet**を使ってキーフレームアニメーションができる!と言うことが書いてあったので実際に触ってみました。

– [キーフレームアニメーションの公式ページ](https://developer.android.com/training/constraint-layout?hl=ja#keyframe_animations)
– [キーフレームアニメーション紹介の動画](https://youtu.be/OHcfs6rStRo)

今回実際に作ってみたやつがこれです。こう言うのをキーフレームアニメーションって言うんですね?
【Android】Snackbarを任意の位置から表示させる

#概要
Snackbarを画面の下部から出すのではなく、任意の位置から表示させる

#レイアウトファイルでCoordinatorLayoutを入れる
“`xml:fragment_main.xml

元記事を表示

[Android]初回にEditTextにフォーカスを当てる

## 目的
アプリを開いたときや、特定のページに遷移した時に画面内のEditTextにフォーカスを当ててキーボードを表示させておく方法

## 内容
ここでXMLファイルのEditTextのタグを拡張して`requestFocus`タグを内部に追加します

“`activity_second.xml



“`

こうすることで読み込み時にフォーカスを

元記事を表示

文字列の日付を整えて文字列で表示する実例(android kotlin)

文字列を日付型に変換したり、日付型を文字列に変換するやり方はたくさん出てきます。

が、実例が出てこなかったのでまとめておきます。

流れとしては
①string型をparseしてdate型に変換
②date型を、整えたい形のstring型に変換

実例を見た方がわかりやすいかと思います

“`kotlin
val dateStr = “2020-01-02 03:04:05”
// dateStrの形式に””ぴったり””合わせてください↓
val sdf = SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”)
val convertedDate = sdf.parse(dateStr)

val sdf2 = SimpleDateFormat(“年はyyyyで、月はMMで、日はddのHH時mm分、ss秒”)
val resultStr = sdf2.format(convertedDate)
“`

resultStrには
「年は2020で、月は01で、日は02の03時04分、05秒」と出力されます。

あと、sdf.parseをするときに注意なのが、

元記事を表示

自動でAndroidのライブラリアップデートのプルリクエストを送る紹介 (Releases Hub Gradle Plugin + GitHub Actions + buildSrc Kotlin)

# 概要

Releases Hub Gradle PluginでKotlin DSLで依存関係を管理していれば自動でライブラリアップデートのプルリクエストを送る事ができます。

https://github.com/DroidKaigi/conference-app-2020/compare/1f02da06718f3281a1665c2430c1afcec943593f…cf13547
この変更だけでGitHub Actionsがこういう感じのプルリクエストを送ってくれるようになります。かなり手軽に導入できます!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27388/71194d22-cadd-01bb-4190-c6cf41512f8e.png)

https://plugin.releaseshub.com/ にPrivacy Policyなどありますのので、一読してください。

## Tips

* ./gradlew listDependenciesで事前にバージョン

元記事を表示

Webkit で WebView のダークテーマ対応をする

# 概要
WebView でダークテーマを適用する方法について述べます。

## なぜやるのか?
WebView でダークテーマに対応するには、従来だと手間のかかる実装をする必要がありました。最近出た [Webkit 1.2.0](https://mvnrepository.com/artifact/androidx.webkit/webkit/1.2.0) を使えば、そうした手間を削減することができます。

—-

# 導入

## 依存の追加
Webkit の依存を追加します。1.2.0 以上を利用してください。

“`groovy:app/build.gradle
dependencies {
implementation “androidx.webkit:webkit:1.2.0”
“`

## WebView に適用
WebViewFeature で “FORCE_DARK” に対応しているかを確認し、している場合に [WebSettingsCompat](https://developer.android.com/reference/kotlin/andro

元記事を表示

Android上でAzure Ink Recognizerを使って手書き文字認識する

# はじめに
スマホやタブレットの上で、図形や文字を混ぜ書きしつつも、文字部分に関しては、裏で手書き文字認識した結果をキーワードなりタグとして記録しておき、あとで検索の時に使いたい、なんてユースケースはよくあるかと思います。

そんな時に使えるのが、Azure Ink Recognizerです。ここではAndroid JavaアプリケーションからInk Recognizerを使う方法をご紹介します。

なお、私はInk Recognizerの担当者ではないので、ここでの記述は、とあるサンデーフルスタックエンジニアの独り言であって、特定のベンダーの保証する内容ではありません。

# 事前準備
Azureのアカウントを用意します。Ink Recognizer(本記事執筆時点ではプレビュー)リソースを作成し、手元にキーとエンドポイントを用意しておきます。

# 利用方法
GitHubに上がっている Azure-Samples/cognitive-services-java-sdk-samples を git cloneして、InkRecognitionディレクトリをAndroid Studi

元記事を表示

[Android]Flow と Room を組み合わせたサンプル

# はじめに

Flow と Room を組み合わせたサンプルを作成します。
アーキテクチャは Google が推奨している MVVM で作成を進めます。

![img](https://developer.android.com/topic/libraries/architecture/images/final-architecture.png)

# TL;DR

– Flow と Room を連携するときは Dao の戻り値を Flow にすればよい
– Room から取得した Flow は `asLiveData` で LiveData に変換できる。
– Flow を LiveData に変換したあとは、通常の LiveData と同じで Observe して利用する。

# Setup

アプリケーションの作成に必要となる、
Koin・Room・Flow(Coroutines)のライブラリをインストールする。

| ライブラリ | バージョン | 説明 |
| ——- | ——- | ——- |
| Koin | 2.1.3 | DIライブラリ |

元記事を表示

【Android】OptionsMenuでMenuItemをグレーアウトにする

# 概要
ある条件のときにOptionsMenuの一部のMenuItemをグレーアウトにして、タップできないようにしてみたので備忘録として記載

# OptionsMenuの実装
“`Java:MainFragment.java
private boolean isEnable = true;

@Override
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
inflater.inflate(R.menu.menu_item, menu);
}

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
AppCompatActivity activity = (AppCompatActivity) getActivity();
int id = item.getItemId();
switch (id) {
case R.

元記事を表示

【Kotlin】kotlinx.serializationを使ってjson parseをやってみる

# kotlinx.serializationとは
>Kotlin serialization consists of a compiler plugin, that generates visitor code for serializable classes, runtime library with core serialization API and JSON format, and support libraries with ProtoBuf, CBOR and properties formats.

Serialize可能なクラスのvisitor codeを生成するコンパイラプラグインとcore serialization APIおよびJSON形式のランタイムライブラリで構成している。

つまり、Kotlinで作られたSerializerということですね。

また、そのほかの特徴としては
>・Supports Kotlin classes marked as @Serializable and standard collections.
・Provides JSON,

元記事を表示

Androidの充電不良が起きた時の対処法

#始めに……

まず、断らなければいけない事があります…
***そうです、qiitaの規約に多分アウトであることです。***
それでも、一応カテ枠の中には収まっていると思うので、よろしくお願いします。

#Androidの充電不良
自分のケータイは、Xperia_XZ1なのですが、今しがた充電不良が発生しました。
皆さん、誰でも長い間ケータイ使われてると、

* ガサツに扱っていた為、基板がズレる

* 経年劣化による不良

のどちらかで、充電口の不良が起きてると思われます。。。
今回は、***前者の方向で不良が起きた方向け***への記事となります。

***※上のリストをトラブルシュートしたい方は、***
***次項目でこの記事が使えるかどうか判断お願いします。***

#充電不良を凌げるかどうか、判断されたい方↓

まず、***充電口を強く抑え***、一瞬でも充電中かどうか判断します。
もしここで、充電中の気が有ったら、こちらの記事は使えるかと思います。
***駄目だったら、直ぐにキャリアにご相談願います(この記事は使えません)***

#本題(凌ぎ方)

「1日だけ、

元記事を表示

【Android】RecyclerView in RecyclerViewの罠【Epoxy】

# はじめに
RecyclerView、便利だよね。
単純なリストだったらサンプル見れば誰でも簡単に実装できるし、Epoxyなんて使った日にはもうめちゃくちゃわかりやすく書けちゃう。

そんなRecyclerViewだけど、こないだRecyclerViewの中にRecyclerViewを入れる実装をした結果、二つの不具合に遭遇した。
多分次やった時も同じ轍を踏みそうな気がするので、忘れないよう備忘録がわりに記事を残しとく。
ちなみにEpoxy使う。

## RecyclerViewのおさらい

簡単に今回関係するところだけかいつまんでおさらい。
そもそも、RecyclerViewはViewのオブジェクトを再利用して表示している。

画面外に出たViewHoldeのオブジェクトは中のデータを入れ替えて再利用される。
これにより

元記事を表示

GitHub Actions でapkファイルを検査する

アプリを開発していると、導入したライブラリの影響等で知らぬ間に意図しないpermission要求が含まれていたり、バイナリのサイズが大きくなってしまうことはよくあります。

> 例えば `com.android.installreferrer:installreferrer:1.1` の追加には、意図しないパーミッション要求が追加されてしまう現象がありました。

master ブランチへのマージを契機に、これらをチェックする GitHub Actions のアクションを書いてみました。Android SDK ツールに含まれる [apkanalyzer](https://developer.android.com/studio/command-line/apkanalyzer?hl=ja) を利用しています。
(ビルド時間が気にならないなら、マージされてしまってからチェックするのではなく、プルリクエスト作成時にチェックした方がよいと思います。)

“`yaml
name: Inspect apk

on:
push:
branches:
– master

en

元記事を表示

マリオカートツアーを毎日自動的に起動してログインボーナスをもらう

#用意するもの
1. Android実機(エミュレータでもいいが動かないかも)
2. adbがインストールされた端末

#準備
1. Android実機にマリオカートツアーをインストールして起動→初期設定まで済ませる
2. Android実機を開発者モードにする
3. adbコマンドで実機に接続しておく(初回に接続を許可するか聞かれるため)

#起動~終了
“`shell
adb connect 192.168.0.xx
adb shell am start -n com.nintendo.zaka/com.nintendo.android.PermissionActivity
sleep 300
adb shell am force-stop com.nintendo.zaka
“`

#懸念事項
1. 起動途中に最新データのダウンロードが入った場合はどうすべきか検討中(Appium使えばいけるか?)

元記事を表示

Xamarinを勉強し始めたので覚えたことを記録するメモ

#はじめに
Xamarinを使ってマルチプラットフォーム開発をやってみたくなったので、勉強したことを記録として残す(徐々に追記)

## Xamarinとは
iOS | Android | Windows など複数のプラットフォームで動作するアプリをC#を使って構築することができるライブラリ

– Xamarin.iOS
– Xamarin.Android

を導入すると、iOSとAndroidのマルチプラットフォーム開発ができる。
例えばVisual Studioに導入すれば、ついでにUWPアプリも作れる。

## Basic Class Library
各プラットフォーム間で共通的に使えるライブラリ。
基本的には、このライブラリを使ってアプリを構築し
個別の対応が必要なものについて、個々のプラットフォームの
ライブラリを使うことで共通化を目指すようだ。

## iOS版のアプリについて
やはりiOS版のアプリについてはMacとXcodeが必要であった。
Mac上のiOSシミュレータは`Xamarin.iOS Build Host`によりペアリングすることで
Windows上のVis

元記事を表示

flutterの環境構築しようとしたらハマった話

最近(2020年2月くらい)、flutterの環境構築でこんな感じでハマった人はいませんか??

“`
Doctor summary (to see all details, run flutter doctor -v):

[!] Android toolchain – develop for Android devices (Android SDK version 29.0.3)
✗ Android license status unknown.
Try re-installing or updating your Android SDK Manager.
See https://developer.android.com/studio/#downloads or visit https://flutter.dev/setup/#android-setup for detailed instructions.

*他の項目は省略
“`
# Android toolchainのエラーが消えへん

本来であれば、こちらのコマンドで解決するはずなのです

元記事を表示

DroidKaigi 2020 アプリでの学び【Kotlin Coroutines Flow 編】

## この記事なに?
Droidkaigi 2020 アプリに commit したので、そこで得た学びや感想を書いた記事です。
いろいろ書きたいことがあったので、分割して書きます。
僕のモチベが続く限り続きます。
ちなみに初めての OSS 活動でした ?

僕が取り組んだ Pull Request はこの2つになります。

– [Thumbs\-up function ? by mkeeda · Pull Request \#626 · DroidKaigi/conference\-app\-2020](https://github.com/DroidKaigi/conference-app-2020/pull/626)
– セッションへのいいね機能を実装しました
– medium の crap 機能のように連打できる機能です
– [\[iOS\] Fix error if build directory is already exists by mkeeda · Pull Request \#805 · DroidKaigi/conference\-app\-2020](ht

元記事を表示

OTHERカテゴリの最新記事