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

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

【Android 9.0 Pie Java】RecyclerView 長押しで要素毎に内容の変わるコンテキストメニューを表示する

RecyclerViewで要素を長押しして、要素毎に内容の変わるコンテキストメニューを表示する方法の記事が見当たらなかったのでメモしてみます!

↓完成イメージ↓
![7c30d4aa9804094e0e83ddb1b9247cb8.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285286/85bfd135-43e4-7a80-315c-c2ee6e4e2fd7.gif)

## 実装方法
### コンテキストメニューの表示
Activity or Fragmentに

“`
View.OnCreateContextMenuListener
“`
をimplementsします。

“`java:SampleFragment.java
public class SampleFragment extends Fragment
implements View.OnCreateContextMenuListener {
“`
他にもViewHolderにimplementsするパターン

元記事を表示

adb connectでmissing port in specificationとなる場合

### はじめに
adbのバージョンによるのか、adb connnectで接続できない場合があったため備忘録

### コマンド

“`bat
C:\Users\hoge>adb tcpip 5555
restarting in TCP mode port: 5555

rem 接続に失敗する
C:\Users\hoge>adb connect 192.168.XXX.XXX
missing port in specification: tcp:192.168.XXX.XXX

rem ポート番号を末尾に追加すると接続できる
C:\Users\hoge>adb connect 192.168.XXX.XXX:5555
connected to 192.168.XXX.XXX:5555

C:\Users\hoge>adb devices
List of devices attached
192.168.XXX.XXX:5555 device

“`

### 確認したバージョン
“`bat
C:\Users\hoge>adb version
Android Debug

元記事を表示

ViewModelのデータを保存/復元するにはSavedStateHandleを使う

# こうだ

![saved_state_handle.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82681/2c5f33fb-2395-a7e4-8c46-c69dda5b15e6.gif)

※`Developer options` の `Don’t keep activities` を有効にしています

# Androidとメモリー上のデータ

Androidはすぐメモリー上のデータが飛びます。
画面を回転したら飛ぶ、システムがアクティビティを破棄したら飛ぶ、システムがプロセスをキルったら飛ぶ。

これらはAndroidのライフサイクルのせいで、上記のタイミングでActivityやFragmentのインスタンスが都度作り直しになるためです。
そのために開発者はActivityやFragmentの `onSaveInstanceState`関数で飛ばしたくないデータを保存し、 `onCreate` 関数などで `savedInstanceState` からデータを復元する処理を書かなくてはいけま

元記事を表示

ImageViewを角丸にする方法

## 概要
Androidには、画像リソースを表示するためにImageViewクラスが存在します。これを使用することで、UIに画像を表示することが可能になります。しかしながら、下の画像のように**丸いアイコンのような画像を表示させる属性は、存在しません**。(2020/08/29現在)

なので今回は、**ImageViewを角丸にする方法を紹介します**。サードパーティのライブラリも複数存在しますが、今回はそのよなライブラリに頼らずAndroid標準のライブラリのみ使用して実装する方法を紹介します。

![hojge.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/199988/e7af4b25-d910-448f-76b0-673655218283.png)

## 実装方法
実装のコードは下記のようになります。
ポイントはCardViewを使用することです。

“`xml

元記事を表示

Androidエンジニアが慣れている技術で作る維持費0円のサーバサイドアプリケーション

# 今回紹介する技術スタックの紹介

普段Androidアプリを作っていますが、たまに認証周りなどでサーバサイドの技術検証をすることがあります。そのときよく使う技術スタックがこちらです。

## Google App Engine スタンダード環境(Java8)

– Javaサーブレッドをデプロイできます。
– アクセスがなければ0円で維持できます。
– 久しぶりのアクセスだとコールドスタートになり、レンスポンスに5秒くらいかかります。
– アクセスがあっても1インスタンスで収まる少ないアクセス数ならば0円で維持できます。

[無料の割り当てについての公式情報はこちら](https://cloud.google.com/appengine/quotas?hl=ja#Instances)

ちなみにスタンダード環境の他にフレキシブル環境というものもありますが、そちらは0円で維持できません。

[スタンダード環境とフレキシブル環境の違いについての公式情報はこちら](https://cloud.google.com/appengine/docs/java?hl=ja)

## Kt

元記事を表示

スクロール可能な画面でViewを下に配置する

# はじめに

スクロール可能な画面で下に配置されているViewを、画面に余裕があれば、画面いっぱいに使ってViewを配置するようなレイアウトの実装方法。

# 実装方法

“`xml

【Flutter】【Android】Splash Screen(起動画面)を直感的に作る方法

#はじめに
 FlutterでiOS / AndroidのSplash Screenを作ろうとしたところ、Android側でかなり手こずったので(僕がAndroidアプリ開発未経験なのが大きい)ここに記します。
 僕と同じ状況の方の役に立てたら幸いです。

 Androidでも画面中央に静止画のロゴを一つ表示するだけの場合や、両OSでデザインが全く同じ場合はとても簡単にSplash Screenを作ることができます。

 [flutter_native_splash](https://pub.dev/packages/flutter_native_splash)という便利なPluginがありますし、それを使わなくてもXcodeとAndroid Studioの初期設定をいじるだけでできます。

 ですが、僕の場合は両OSでデザインが違う && 画像を複数表示しなければならなかったので上記の方法では解決できませんでした。

 また、この問題に関する技術記事がほとんど見当たらず実装は難航しました。

 iOSでSplash Screen(Launch Screen)を作る方法やAndroid

元記事を表示

【Kotlin1.4】kotlinx.serializationとMoshiを比較してみた

# 背景

先日
[Kotlin1.4で使いたい新機能を一部紹介する](https://qiita.com/sudo5in5k/items/e9207d39fbbfdfe827b2)
という記事を書かせていただいて、その中で`kotlinx.serializaton`が気になっていました。

JSONパーサのライブラリは色々ありますが、[「Gson is deprecated.」](https://www.reddit.com/r/androiddev/comments/ejjroe/kotlinx_json_vs_gson_a_short_article_about_kotlin/fcz3v0d/?utm_source=share&utm_medium=web2x)から[Moshi](https://github.com/square/moshi)を使っている方が多いのではないでしょうか。

ですがこの度、Kotlin1.4になってからStableなJSON serializationとして[kotlinx.serialization](https://github.com/Kot

元記事を表示

UnityでAPI Levelあげようとしたけど、選択できずに困った時の話

# 前置き
– aa,,もうAPI levelをあげないといけない季節になったのか……
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87713/2a6d45f9-bb6f-ae05-fcac-a6a313f12af7.png)
– Unity上でAPIレベルを28から29に上げようとした時、ちょっとつまづいた時の話

# 環境
– Unity 2018.4.19f1

# 解決方法
## 結論
1. AndroidSDKをinstall
1. Unity上で`Target API Level`をAutomaticにする

## 手順
1. AndroidStudio起動
2. SDK Manager起動
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87713/c013ff2c-6101-43e1-8c72-a49112288a4a.png)

![image.png](https

元記事を表示

FlutterでFirebaseエミュレーターへの接続調査、バージョン問題が解決できないよ

最初の記事、メモ書きです。 あまりキレイに書くつもりが無いので、あしからず
できねーよっていう記録なので読まないほうがいいかもです。(じゃー書くな、は無しで)

## 何を開発してるか (読み飛ばし推奨)

## 楽器練習アプリ
何気なく、楽器練習アプリを開発したいとツイートしたら欲しいという要望がたくさんたくさん(4件)寄せられたので、Flutterを調べつつ開発に挑戦中です。
楽だけど覚えることも多いですね。 言わなきゃよかったw
なので、仕事じゃなくて趣味開発です。

エンジニアって、大体こんなの欲しいと思って着手しても挫折するよね (あるあるー)
でも応援してくれる人がいるので頑張ってます。
というか、それが分かってたのでいろんな人を巻き込んで、やらざるを得ないに追い込んでます。
これに関しては、気が向いたら記事を別に書くかも、書かないかも

### 現状の学習ステータス
Flutterのレイアウトはなんとなく作れるようになったので、実装やデータ保存周りを調べてます。
学習の手順は、人それぞれだと思いますが、私の場合は、Android Projectを作りまくります。
壊れ

元記事を表示

DroidKaigi 2020 Liteで知らなかったことメモ

ちょっと見てみて知らなかったことをメモしておきます!Lite版でしたが楽しかったです!
まだ今日のナイトセッションと明日のコードラボがあるようなので楽しみにしています!! :eyes:

# MDCの内部実装から学ぶ 表現力の高いViewの作り方 / HiroYUKI Seto

## MaterialShapeDrawable
backgroundとして使うDrawable
いろんなカスタマイズができる
**Shadowのカスタマイズもできるので複雑な形のShadowが表示できる。ただAndroidのShadowより少し濃いShadowになる。**

MaterialShapeDrawableがMaterialShapeDrawableStateを持っていて、その中でShapeAppearanceModelが保持される。
ShapeAppearanceModelに形状や辺や角などの設定がある

## Drawable
**intrinsicWidth / Height**
BitmapD

元記事を表示

Androidアプリを中国市場にリリース

##中国のアプリ市場

現在GooglePlayは中国には進出しておらず、中国で販売しているスマートフォンはすべてGooglePlayが載っていない状態です。その代わりに各メーカーが独自のアプリダウンロード用のストアを立ち上げていました。

アプリ開発者がGooglePlayにリリースしているAndroidアプリは、スマホ人口が10億人弱と言われている中国に展開できない状況です。
smartphone_earphone_man_wireless.pngsmartphone_earphone_woman_wireless.pngLogin Activity 【Android StudioのテンプレートActivity紹介】

#はじめに
Android開発の勉強を兼ねて記事を執筆しておりますが,素人に毛が生えた程度の知識で解説している為,説明間違いが含まれている可能性があります。
お気づきの点がありましたら,是非コメントお願いいたします。
また,テンプレートのアップデートにより,機能やコードが記事執筆時点と異なる場合があります。

#本記事の目的
Android Studioで使用可能なテンプレートActivityの一つである「Login Activity」について,機能や構成を説明します。

#テンプレートの概要([公式](https://developer.android.com/studio/projects/templates?hl=ja)より引用)

>このテンプレートでは、標準的なログイン画面を作成します。ユーザー インターフェースには、メールアドレスとパスワードの各フィールドとログインボタンがあります。一般に、アプリ モジュール テンプレートではなくアクティビティ テンプレートとして使用されます。

>このテンプレートの内容は次のとおりです。

>- ユーザー インターフェースのメインスレ

元記事を表示

AndroidのButtonのTextのスタイルを設定する方法

# 概要

AndroidのButton内のTextのスタイルを設定する方法をまとめる。

# 注意点

AndroidStudioではimport文の追加が自動で行われなかった。
以下のimport文を自分で以下を追記する必要がある。

“`
import android.graphics.Typeface;
“`

# スタイルの設定方法

“`
import android.graphics.Typeface;

Button btn = (Button) findViewById(R.id.button);

// テキストをNormalに変更
btn.setTypeface(null, Typeface.DEFAULT);

// テキストをBoldに変更
btn.setTypeface(null, Typeface.DEFAULT_BOLD);

// テキストをBold + Italicに変更
btn.setTypeface(null, Typeface.DEFAULT_BOLD_ITALIC);

// テキストをItalicに変更
btn.setTypeface

元記事を表示

Androidのリセマラを防ぐ

# 要約

MediaDrmを使ってリセマラを防ぎます

# 概要

Androidでリセマラ(リセットマラソン)を防ぐために、一意のIDを取得します。
ここでいうリセマラとは、アプリをアンインストール/インストールを繰り返して、初回限定の利益を何度も受ける行為を指します。

## 公式のドキュメント
リセマラのように何度もアプリを再インストールしてIDを作成することをシビル攻撃というらしいです。
そして、公式にも[不正行為防止: 無料コンテンツ制限を適用し、シビル攻撃を検知する](https://developer.android.com/training/articles/user-data-ids?hl=ja#anti-fraud-free-content-limits)というドキュメントがあります。

> GUID やインスタンス ID を使用すると、ユーザーがコンテンツ上限の適用を回避するにはアプリを再インストールしなければならなくなるため、ほとんどのユーザーに思いとどまらせることができます。

しかし、これで思いとどまらないのがリセマラという行為なので、もう一つある

>

元記事を表示

[導入]Kotlinをインストール

KotlinはAndroid開発で人気ですね。

以下、導入方法です。

・https://kotlinlang.org/
にアクセス!

Learn->Getting started in Kotlin->Working with the Command Line Compiler

SDKMAN!のとこの
`curl -s https://get.sdkman.io | bash`をコピーして
ターミナルで叩くとアスキーアートがでてくるのでダウンロード完了まで少し待ちましょ。

`Please open a new terminal, or run the following in the existing one:`
`source “/home/kaneko381/.sdkman/bin/sdkman-init.sh”`
とあるので
`source “/home/kaneko381/.sdkman/bin/sdkman-init.sh”`
を叩きましょ。

次に、
`sdk install kotlin`
叩きましょ。

インストールに5分くらいかかりました。結構かかりま

元記事を表示

【Android】Fragmentで安全にBindingObjectを参照する

![Last Modified-2020/08/27](https://img.shields.io/badge/Last Modified-2020/08/27-brightgreen)
※ @zizi4n5 さんの[こちら](https://qiita.com/zizi4n5/items/c5f0013236fd055c3e02)の記事を参考にラベルを付けてみました:pray:

どうもこんにちは、いつも便利なDelegateでハッピーな開発をしたい うえむーです。

親のFragmentのコンストラクタにLayoutリソースを引数としてとれるようになって、viewの生成を自前でやる必要がなくなりましたね!
しかし、onCreateViewをoverrideしなくてよくなったのは良くも悪くも何かしらの影響があるというもの。
例えばこのような課題がありました…

> 今までonCreateViewで生成してFragmentにキャッシュしていたbindingObjectを、既存のコードを極力変更せずにどうやって取得しよう…:thinking:

→ Delegateで取得でき

元記事を表示

【ゲームアプリとベジェ曲線:その②】ストローク(線)による表現

## はじめに
このシリーズで模索するのは、**iOS**/**Android** ゲームアプリ制作におけるベジェ曲線の可能性です。
第二回目は、ストローク(線)の処理結果を利用した表現について書かせていただきます。

動作サンプルが **GitHub** にありますので、興味のある方はご覧くださいませ。
[**https://github.com/hakumai-iida/BezierSample**](https://github.com/hakumai-iida/BezierSample)
[![title_2nd](https://user-images.githubusercontent.com/13220051/91370162-9434d080-e848-11ea-918e-98d25b2d63b6.png)](https://github.com/hakumai-iida/BezierSample)

前回:[【ゲームアプリとベジェ曲線:その①】環境準備とアンカーポイント(点)による表現](https://qiita.com/hakumai-iida/items/5

元記事を表示

FlutterのAndroidアプリを開発するときの備忘録

Androidアプリを開発したくて、Flutterを勉強中です。
VSCodeを使って開発しているのですが、
毎回、ビルドして、実機にインストールするときの作業手順を忘れてしまうので、
自分向けの備忘録としてまとめます。

# ビルド
“`
flutter build apk –split-per-abi
“`

# 実機インストール
“`
adb -d install -r build/app/outputs/apk/release/app-arm64-v8a-release.apk
“`

元記事を表示

iOSとAndroidのアプリ画面を比較できるサイト「consim.」が便利すぎる

# はじめに

**iOSとAndroidのアプリ画面を比較できるサイト「consim .」が便利すぎる!**と思ったので紹介します。
Apple MusicやTwitter、Slackといった有名なアプリの**iOSとAndroidのアプリ画面が大量に登録**されているので、観るだけでもUIの勉強になると思います。
(Apple Musicアプリだけで、**iOS 50枚**、**Android 48枚**のアプリ画面が登録されていました。)

また、**[iOSとAndroidの画面を左右に分けて表示](#iosとandroidの画面を左右に分けて表示)**することもできるので、**iOS/Androidどちらかの画面だけ見てみたい**、といった方にも有用なサイトだと思います。

* https://consim.design
![スクリーンショット 2020-08-27 12.31.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63892/ffd72375-80b7-dac7-048a-cb

元記事を表示

OTHERカテゴリの最新記事