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

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

AndroidでImageViewをソースコードで丸くしたい(Kotlin編)

今回はAndroidでImageViewをソースコードで丸くしたいなと思いまして、対応しました。
私のメモレベルです。
よかったら参考にしてもらえると幸いです。

## Javaの場合
Javaをご利用しているは、こちらを参考してください。

ImageView を 簡単に 角丸 にする

## Kotlinの場合
下記の関数を導入します。

“`
fun getCroppedBitmap(bitmap: Bitmap): Bitmap? {
val width = bitmap.width
val height = bitmap.height
val rect = Rect(0, 0, width, height)
val rectf = RectF(0F, 0F, width.toFloat(),

元記事を表示

Android-AndroidStudioのテンプレート「Basic Activity」の構成要素を調べる

#Basic Activityのアーキテクチャ
![basicactivity.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/249786/69844085-a19b-6b0e-7055-08a85f67b157.png)

###① ステータスバー

Activityからステータスばーへアクセスすることができて,このバーを非表示にすることができる.

###② アクションバー/アプリバー

このようにナビゲーションを提供します.

###③ アプリ名

`AndroidManifest.xml`というファイルから,`android:label=”@string/app_name”`の要素から変更できます.
(`@string/app_name`は,`string.xml`の`app_name`の要素という意味)

###④ オプションメニュー

検索を配置するときもあります.

###⑤ Coordinatorレイアウト

アプリのUIは,`content_main.xml`に定義されていて,Vie

元記事を表示

Android-CodeLab-1.4: アプリのアイコンをImageAssetを使って変更する

#今回学ぶこと
アプリのランチャーアイコンを変更する方法

#目指す成果物

まずシンプルなアプリを作成します.
そしてアプリのランチャーアイコンを,AndroidStudioで用意されているImageAsset(イメージアセット)に置き換えてみます.

![1-4-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/249786/c60c5522-46ab-6e0b-d95b-057c83feed5d.png)

#ステップ
###1. ランチャーアイコンの変更
ランチャーアイコンを変更するには,ImageAssetという機能が使われます.

まず,`res`フォルダをCtrl+クリックします.
[New]>[ImageAsset]を選択するとこのようなダイアログが表示されます.

![1-4-5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/249786/7cae021c-502b-7e73-8059-ff93fc2

元記事を表示

DataBindingとLiveDataのハマりどころ

layoutとLiveDataをbindingする際のはまりどころとチェックポイントをまとめる。
公式ドキュメントや人の解説をしっかり読んでいる人なら、はまらないレベル。
が、たまに新規アプリを作ると、いつもはまる。

FragmentのlayoutにViewModelのメンバLiveDataをbindingする場合を例にする。

## Bindingクラスが生成されないんだけど

FragmentXXXBindingが生成されないケース。

build.gradleに以下の記述をしているか?

“`gradle
android {

dataBinding {
enabled = true
}
}
“`

layout XMLのルートをにしているか

“`xml

元記事を表示

Android 小ネタ帳

Androidの開発を行っていると、「そんな機能があるの?」という機能を時々見つけます。
業務上、スマートフォンの機能を全て押さえておきたいため、知らなかった機能を見つけたら随時追加します。

## Android 9

### 画面の手動による回転機能

普段は表示されていませんが、画面を回転させると回転ボタンが表示され、ボタンを押すと回転されます。

![20190219-y0102.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56144/1f706308-5df8-d5a8-2545-5f97eca49bc8.png)

https://dekiru.net/article/17811/

## Android 10

## 画面録画機能

「電源ボタン」の長押してから、「画面の保存」の長押しすることで「画面の録画」ができるようになります。ただし、その前に adb 経由で設定を有効化している必要があります。

“`
adb shell settings put global settings_

元記事を表示

[Android] 静的解析ツールPMD

##導入
「ファイル」→「設定」→「プラグイン」でPMD Pluginと出てくるので、それをインストールする。
![スクリーンショット (7).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506451/db3c9d3f-0818-5e5e-bf87-4ee8883a2b58.png)

その後再起動する。

##使い方
右クリックで「Run PMD」と出てくるので、その中の選択肢を選んで解析できる。

![スクリーンショット (8).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506451/4cca077d-aba3-7e16-8e2e-0202b90a5a5e.png)

##結果
以下のような結果が出てきた。
![スクリーンショット (9).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506451/b0d1b939-8b12-a

元記事を表示

[Android開発][Kotlin]ListViewに値を表示する

[](https://play.google.com/store/apps/details?id=jp.umiki.feedantenna)

# 画面のイメージ
![Screenshot_1580714271.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571891/061b8167-798e-e96

元記事を表示

AndroidでTextViewのテキストの一部にリンクをつけたいときのKotlinExtension

サインインが必要なアプリで、「サービスに登録することで利用規約とプライバシーポリシーに同意したとみなします。」系のテキストの「利用規約」と「プライバリーポリシー」にClickListenerを付与したい場合のKotlinExtensionを書きました。

“`kotlin
fun TextView.addLinkedSpannable(highlight: String, listener: (view: View) -> Unit) {
val original = when {
(text != null && text is SpannableString) -> text
else -> SpannableString(text)
}

val startPos = original.indexOf(highlight)

movementMethod = LinkMovementMethod.getInstance()
text = SpannableStringBuilder(original).al

元記事を表示

BiometricPrompt 対応機種

アプリを生体認証させるためのAPIである「BiometricPrompt」についてまとめます。

## 対応バージョン

Android 9 以降

Android 9 未満の場合は、AndroidXのサポートライブラリを使うことにより、Android 6 以降であれば使えるみたいです。(未確認)

## 対応機種

認証機能が搭載されていても、BiometricPromptに対応していないものがありましたので分かり次第まとめておきます。

| Model | Biometric Authentication | 備考 |
| — | — | — |
| Pixel 3 / 3XL | 顔認証OK |
| Xperia XZ1 | 指紋認証OK |
| AQUOS sense2 | 顔認証NG | 顔認証はプリインされているが画像処理 |

### Reference

ドコモ対応機種
https://www.nttdocomo.co.jp/service/bio/compatible_model/security_face_attestation.html

## Sam

元記事を表示

Ruby(Rails)でAndroidアプリ内課金のレシートを検証するコード例

# 前提
Androidアプリでの商品の購入をサーバ側でも検証する必要があった。
ので、アプリから送信された[Purchase](https://developer.android.com/reference/com/android/billingclient/api/Purchase)の情報をRubyでDeveloper APIに問い合わせ、購入を確認するコードを紹介します。
以下はRailsでの例ですが、特にRails固有の機能は使っていないので他のRuby環境でも動くはず。

# 検証
先に全体のコードを貼る。
[検証用トークン](https://developer.android.com/reference/com/android/billingclient/api/Purchase.html#getpurchasetoken)と[プロダクトID](https://developer.android.com/reference/com/android/billingclient/api/Purchase.html#getSku())を放り込み、[購入情報](https://de

元記事を表示

【Android】アプリの権限を許可してもらうために「設定」を開きたい

Androidアプリを作っていると、アプリからデバイスの「設定」に飛ばしたくなることがあります。例えば、アプリ内でカメラを使いたいときに、カメラへのアクセスが許可されていない場合は使えないので、「設定」で許可してもらいたいです。
そこで、アプリの「設定へ」のようなボタンを押すと設定画面を開くようにする方法を、忘れないように記しておきます。

以下の手順では、該当アプリの詳細設定画面に飛ぶようになっています。

アプリの詳細設定画面
![application_details_settings.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124752/eec418da-c855-7fa9-5224-6b58ad71ea64.png)

# 手順
アプリの詳細設定画面を開くコードを以下に示します。

“`kotlin
val settingsIntent = Intent(
android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS

元記事を表示

LineageOS 16.0(Android 9)

## 【LineageOS 16.0 (Android 9)】
RPi3B+ のスペックは [Nexus 7 (2012)](https://ja.wikipedia.org/wiki/Nexus_7_(2012) “Nexus 7 (2012) – Wikipedia”) 相当(という認識)だったけど、RPi4B はどうなんだろう。
最近のタブレットには疎いからよく分からないけど、やはり数世代前の物と同程度だと思われ。
で、LineageOS。試しに入れてみたけど、流石に動作はもっさり。RPi4B とはいえ比較的新しめの Android を動かすには厳しいよな。
しかし、こうしたビルドを公開している人は凄いよ。
RPi ならイメージ焼きでガチャポンで起動できるし。興味のある方は以下参照。

[LineageOS 16.0 (Android 9) for Raspberry Pi 4](https://konstaka

元記事を表示

本日の曜日を取得する方法

#曜日を取得する方法

###曜日

String[] weekName = {“日曜日”, “月曜日”, “火曜日”, “水曜日”,
“木曜日”, “金曜日”, “土曜日”};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Calendar calendar = Calendar.getInstance();

int week = calendar.get(Calendar.DAY_OF_WEEK) – 1;
Log.v(“checkCalendor”,” + ” + weekName[week]);

}

###その他の情報の取得方法

int year = calendar.get(Calendar.Y

元記事を表示

[Android] Include タグを利用したときに Databinding する方法

# はじめに

Android では Layout の再利用性を高められるよう Include タグを利用すれば、
作成済みの Layout ファイルを他の Layout ファイルに埋め込むことができます。

**作成済みの Layout ファイル**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/79387/ffbbb4d8-bb00-8c88-f6b5-8c28aedcf092.png)

“`xml:one_fragment.xml

元記事を表示

スマホアプリのUIデザインについて知っておきたいこと

# はじめに
スマホアプリのエンジニアとして、UIデザインについて知っておきたいことをまとめておきます。
自分用のリンク集のような意味合いが強いですがお役に立てば幸いです。

# 公式資料
一度は目を通しておきたい基本的で重要なドキュメントです。

### Apple
– [Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/)
– 現在は英語版しかないようです
– [Apple Design Resources](https://developer.apple.com/design/resources/)
– デザインツール用のテンプレートファイルなどがあります

### Google
– [Material Design](https://material.io/design/)
– こちらも現在は英語版しかなさそう
– [Android のマテリアル デザイン](https://developer.android.com/guide/topics/

元記事を表示

React NativeのビルドにAndroid Studioに同梱されているJavaを使う

React NativeでAndroid向けにビルドする場合、環境にJavaがインストールされている必要がある。

メジャーなのはOracleの配布しているJava。しかしAndroid StudioにはそれでなくOpen JDKが同梱されている。

Android Studioのと合わせた方がトラブルが生じにくいだろうし、またOracle Javaのライセンス変更[^1]を気にする必要もなくなるため、Android Studioに同梱されているJavaをReact Nativeのビルドに使う。

[^1]: [「Oracle Java」のライセンスが変更 ~無償利用は個人での開発・テスト・デモ目的のみに](https://forest.watch.impress.co.jp/docs/news/1180607.html)

## 環境
– macOS Mohave 10.14.6
– react-native: 0.61.5

## 手順

`.bash_profile`に下記のように記述する。

“`sh
export PATH=$PATH:/Applications/”Andr

元記事を表示

エンジニア向けSNSアプリを孤独にフルスクラッチした時の技術要素とか苦労話とか

# 作ったもの
エンジニア同士、デザイナ同士、エンジニアーデザイナが一緒に「なんか作ろうぜ」「なんか勉強しようぜ」というつながりを実現できるSNSアプリ

EDICPAT
https://play.google.com/store/apps/details?id=com.engineer_forum.engineer_forum

# 作った動機
エンジニア向けSNSアプリってもう色々あるんでしょうけど、既存の団体に自分が参加する形式とか、作ったものを見てもらうとかの形式だったりすると思います。

そうじゃなくて、未経験者とか、フリーランスエンジニアとか、**そこら辺の仲間と「勉強会やろうぜ」とか「何か作ろうぜ!」ってやりたい。**休日とか、ライトなノリで。自分自身がそういうのに

元記事を表示

HTV31のバッテリー交換してみた

# 起
6系の開発端末がなかったので、昔使っていたHTV31を使えるようにしよう。
プログラミングの話題ではありませんが、ご容赦いただければ・・・

# 使えなくなってた経緯
– バッテリー残70%で電源が落ちる
– コネクタの接触が悪いのか充電できない(ことが多い)

バッテリー交換してやれば一応使えそう

# 準備
– バッテリーはヤフオクで入手
– 2300円でした
– ~~そもそもHTV31自体同じくらい価格で買えるけどそれは言わない方向で~~
– 交換用のツールも色々ついてきたけど結局手持ちのもので足りました

– 手順は[まめわんわん様のブログ](https://ameblo.jp/mamewanwan-04/entry-12459253833.html)を参考にさせていただきました

# 使ったもの

元記事を表示

Kotlin, LiveData, coroutine なんかを使って初めてのAndroidアプリを作る(7)

すっかり遅くなってしましました(汗)
テストにドはまりしたり、Flutterに浮気したりしてしたわけではありませんよ?(笑)

ということで、[前回](https://qiita.com/kasa_le/items/a20763135ce61b15c270)の続きです。

# 今回の目標

– ライブラリの最新版対応
– Koinを使ってDI(依存性注入)を行う

アプリの機能としては進歩しませんが、ちょっとだけ「リファクタリング」ぽいことをやります。
メインはDIの方ですが、ちょうどよいので使っているライブラリのバージョンも最新にしてみようと思います。

# ライブラリの最新版対応

アプリの作成中には、1ヶ月ほどで完成できるようなアプリならともかく、ある程度の期間掛けて開発する場合には、その途中でライブラリや開発ツールのバージョンがいつの間にかドンドン上がってしまい、リリースする頃にはいつの間にか「まだそのバージョン使ってるの?」なんてことも。

単にバージョンの数字を上げてやるだけで良い場合は特に問題ないのですが、微妙にinterfaceが変わったり、使っていたAPIが非推奨に

元記事を表示

Unity2019.XでAndroid IL2CPPビルドする

# 概要

 最近業務でAndroid IL2CPPビルドすることになったんですけど滅茶苦茶手こずったので同じ被害者を出さないためにメモ

# 解決法

 UnityHubでAndroid Build Supportをインストールする時に子要素のAndroid SDK & NDK ToolsとOpenJDKにもチェック入れてインストールするだけ。あとはUnityが勝手にパス参照とかしてくれるので一切設定する必要なし。![Screenshot 2020-01-31_23-30-54-140.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483991/6140194a-da25-922c-8203-b30b0c33b3c4.png)

# 愚痴

 Unity2017.XとかだとAndroid SDKとか全部自前でDLして設定する必要あったじゃないですか。公式にも[こんなの](https://docs.unity3d.com/jp/460/Manual/android-sdksetup.html)があるし。

元記事を表示

OTHERカテゴリの最新記事