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

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

[Android]Android端末をリモートから操作する(scrcpy)

# はじめに

Android開発ではエミュレータで動作確認することも多いですが、
やはり最終的にはAndroid端末の実機で動作確認しますよね。

そのときにリモートで操作できたら便利だよな〜って調べたら、
[scrcpy](https://github.com/Genymobile/scrcpy)を使えば簡単にできることがわかったのでまとめます。

# scrcpy とはなんなのか?

scrcpyは端末の映像表示、操作をUSBまたはTCP/IP経由で行うアプリケーションです。
Windows・Linux・Macで利用できるアプリケーションなので全てのAndroid開発環境で利用できます。

# scrcpy の特徴は何か?
scrcpyですがGitHubのREADMEによると次の特徴があるそうです。
私は特にデバイスに何かインストールする必要がないところが良いなと思いました。
(インストールするのすごく抵抗がありますし…消すの面倒なのでよいですよね…)

– 動作が軽い
– なめらか(30〜60fps)
– 画質が良い(1920×1080)
– 低遅延(35〜70ms)
– 起動

元記事を表示

[Android / Kotlin] ナビゲーションドロワーのつくりかた

どうも。こんばんわ

# なにがあったのか
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409918/05545e12-a4c7-83ae-31b8-7c63a448b994.png)

この画面からナビゲーションドロワーを作成すると前と違ってめっちゃフォルダ・ファイルが作成されるようになった。どゆこと

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409918/1d14c929-e9e5-6c41-90a6-47a5044c4241.png)

しかもbuild.gradleに書き足さないとエラーが出るってなんだよ。

“`
Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6. Please specify proper ‘-j

元記事を表示

Android【Jetpack Composeお試し編】

## 概要
「Android Studio 4.0 Canary 1」にてkotlinのコードでUIを構築できる`Jetpack Compose`に対応しました。
実際に公式のチュートリアルやデモを試したのでそのまとめです。

[Android Studio 4.0 ダウンロードページ](https://developer.android.com/studio/preview?hl=ja)
[Jetpack Composeとは](https://developer.android.com/jetpack/compose)
[Use Android Studio with Jetpack Compose](https://developer.android.com/jetpack/compose/setup)
[TUTORIAL Jetpack Compose Basics](https://developer.android.com/jetpack/compose/tutorial)
[Jetpack Compose Basics](https://codelabs.devel

元記事を表示

Androidアプリで、初回のタッチイベントのみ取得できない

#はじめに
htmlを表示するAndroidアプリを扱っていて、
タブレットの再起動直後タップして他画面へ遷移、という動作を行おうとしたところ、
遷移が行われず、2回目のタップで遷移が行われた、ということがあったので、原因を調査しました。
試行錯誤の様子をネチネチ綴ります。

#最初はアプリ上のブラウザにフォーカスがないからかと思った
単純に、初期表示のonLoad時に`$(window).focus`すればいいんじゃない?
と思ってhtml側でを修正してみましたが、
tomcat再起動してタブレットを再起動した1回目はなぜか初回のタップで画面遷移ができるのに、
次再起動したらもう初回のタップで画面遷移ができないという…

ブラウザにフォーカスを当ててもだめ…
ということは画面に表示された部品にフォーカスが当たってたらいいとか?

#動的にアプリ側からフォーカスを置くjavascriptを呼んでみる
androidアプリでhtml上にフォーカスを置くの、どうしたらいいんだろうと検索しまくると、
[ここ](https://stackoverflow.com/questions/5

元記事を表示

[ Android ] [ localization ] ボタンによる言語切替(日英)3(未完)

以前言語切替に関する記事を書いたが、未完であったので続きを書く。

前回、前々回の記事
https://qiita.com/QiitaD/items/bd4199f2b77167ebe4c3
https://qiita.com/QiitaD/items/cd06c029f1ed541c1bab

##はじめに
言語に合わせたフォルダを用意する必要がある。
resにvaluesフォルダ、その下にstrings.xmlがあると思うが
これを英語用フォルダファイルとして使う。
そして**resの下に新たなフォルダvalues-jaを作成し
その下にstrings.xmlを作成し、
日本語用のレイアウトファイルとする**。
このようにすることでAndroidのLocaleとしてセットされている言語の
レイアウトファイルを反映することができる。
![スクリーンショット (92).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506451/e03490ac-be69-a2b2-245e-a6dfde922244.p

元記事を表示

Kotlinでアプリを作ってみる(TabLayout,ViewPager,Fragment,FragmentPagerAdapter)

次の開発現場が決まりました。なんと、Kotlinでなく大好きなjavaです。笑
Android開発していく上で避けて通れないと思ったのですが、今回は免れました。
なのでKotlinの勉強は長期戦になりそうです。

##タブを押すと画面(Fragment)が切り替わるアプリを作ってみた。
##以下ソースコード
Tabを表示する画面のActivityのソースコード
ViewPagerにtab用のadapterをセットしてtablayoutにセットする
(←この解釈でよいかは不明)

“`CompanyActivity.kt
package com.example.myapplication_kotlin.activity

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.example.myapplication_kotlin.R
import com.example.myapplication_kotlin.adapter.TabAdapter
import kotl

元記事を表示

【Android】はじめてのDataBinding

[前回の記事:【Android】分かった気になれる!アーキテクチャ・MVVM概説](https://qiita.com/iTakahiro/items/6b1b22efa69e55cea3fa) では
アーキテクチャの概要をコードを記述せずに概念のみ説明してみました。
今後は各ライブラリを実際にコードを書いて導入してみることで
アーキテクチャと各種ライブラリを理解し、身につけていきたいと思っています。

このアーキテクチャシリーズ実践編第一回目として
今回は、Googleが提供するJetPackに含まれるDataBindingライブラリを
実践しながら簡単に説明していきたいと思います。

だらだらと書くのも楽しくないので、
今回は私が愛して止まないアメリカンフットボールのルール・魅力を
間に挟みながらDataBindingを説明していきたいと思います。

気になったワードがあれば、ぜひ調べてみてくださいね

# はじめに
本記事では、DataBindingとLiveDataを用いて添付のGIF画像のような挙動を実装しようと思います。

この画面の特徴は以下の通りです。

– Butto

元記事を表示

[ Android ] Fragment基礎2

前回記事Fragment基礎 https://qiita.com/QiitaD/items/edb3d99ce03cd000b23f
に続き、今回もFragmentについて触れていく。

##前回の補足
前回触れた使いまわしについてよくわからなかったので、調べてみた結果を綴る。
まず例として画面の
左側にボタン群、右側に入力欄群があるプログラムを考える。

![スクリーンショット (80).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506451/607530a9-329f-a095-ef9e-88e910bcd90a.png)

例えば、これをFragmentで分けると以下になる。

![スクリーンショット (82).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506451/a97e304a-b5f7-f5e4-6900-c4c2f1d3bce4.png)

上記をファイル名に置き換えると以下のようにできる。
![

元記事を表示

Kotlinとは?~歴史や機能を調べてみた~

# まえがき
Kotlinを使ってAndroidアプリの開発を行っていますが、Kotlinはどういう歴史をたどって現在Androidアプリの開発のメイン言語になったのか気になったのでこの記事を書きました。
きちんと調べたはずですが、間違いなどがあったら是非ご指摘お願いします。

# Kotlinとは何か?
KotlinとはAndroidアプリ開発を行う際に使用するプログラミング言語です。

もともと、Androidの開発言語はJavaでしたがGoogle I/O 2017にて、
正式なAndroidの開発言語になりました。

参考サイト
https://blog.jetbrains.com/kotlin/2017/05/kotlin-on-android-now-official/

そして、Google I/O 2019にて「Kotlinファースト」が強化されたことにより開発において最新のアップデートはKotlinからされるようになりました。

参考サイト
https://android-developers.googleblog.com/2019/05/google-io-2019

元記事を表示

AndroidのTabLayout(Material Design)の文字をカスタムViewを使わずにカスタマイズする

※一部の古いOSバージョン・端末では正しく適用されない場合があるので、それらをサポートしている場合は注意してください。

`com.google.android.material.tabs.TabLayout`の文字装飾(太字にする、色を変える、サイズを変えるなど)はSpannableを使うことで、カスタムViewにしなくてもある程度はカスタマイズできます。Spannableを使うので、テキストの一部だけ文字サイズを変えるなどの装飾をすることもできます。

# すべてのタブの文字をカスタマイズする

すべてのタブで統一した文字装飾を実装する場合は、`PagerAdapter.getPageTitle`をOverrideして`SpannableString`を返すとカスタマイズできます。

“`kotlin
//タブの曜日のテキストだけ小さくする
override fun getPageTitle(position: Int): CharSequence? {
return dates[position].let {
val da

元記事を表示

UnityHub経由でAndroidビルド時に「Unable to detect NDK version」が出た時の解決方法

# 開発環境
**windows**
Windows10

**UnityHub**
Unity2019.2.0f1

**Android端末**
Pixel3

# 起きた現象
Androidビルドしようとした時に「Unable to locate Android NDK」というエラーが出た
![android_ndk.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77637/5428e48e-e0e6-3dfb-463f-e8b2d0eb66c2.png)

「Edit/Preferences…」を開き、External Toolsを見ると
・Android SDK Tools Installed with Unity (recommended)
・Android NDK Tools Installed with Unity (recommended)
の二つがmissingになっていた
確かUnityHubのバージョンを最新にしてください、的なエラー内容だったはず

(以下の画像は解決してしま

元記事を表示

kotlinでのAndroid Studioのエラー

//勝敗を判定
val gameResult={comhand-myHand+3}%3
when(gameResult)
{
0 ->resultLabel.setText(R.string.result_draw)//引き分け
1 ->resultLabel.setText(R.string.result_win) //勝ち
2 ->resultLabel.setText(R.string.result_lose) //負け

}
<エラー>
 Expecting member declaration

書籍に載っていたプログラムをそのまま書いたのですが、上記のようなエラーが出てしまいます。
いろいろ調べたのですが、いまいち解決方法がわかりません。よろしくお願いいたします。

元記事を表示

[ Android ] Fragment基礎

AndroidのFragmentについて記す。

##Fragment
ライフサイクルを持ったビューのこと。
追加削除をしたり、複数の画面を使いまわすことができる。

##実装方法
まずレイアウトファイル(xml)を作成する。
次にFragmentを継承したクラスを作成し、onCreateView()内で
レイアウトファイルをViewとして生成する。
具体的には以下のように書く。

~~~java
public class MainFragment extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
//作成したレイアウトファイルをViewとして作成
return inflater.inflate(

元記事を表示

Flutterウィークリー #82

# Flutterウィークリーとは?
FlutterファンによるFlutterファンのためのニュースレター
https://flutterweekly.net/

この記事は#82の日本語訳です
https://mailchi.mp/flutterweekly/flutter-weekly-82

※Google翻訳を使って自動翻訳を行っています。翻訳に問題がある箇所を発見しましたら編集リクエストを送っていただければ幸いです。

# アナウンス

### Flutter Interact –日付を保存します
https://events.google.com/flutter-interact/


Flutterチームによる新しいイベント。今回はニューヨークで開催され、全世界に向けて生放送されます。

# 読み物&チュートリアル

### Over the Rainbow –カラーフィルター
https:/

元記事を表示

[Android / Kotlin] 画面回転無効時でもセンサーを使って回転できるようにする

どうも。こんばんわ
今回は画面回転無効(画面固定)のときでも回転できるようにしようと思います。

### そういえばdocomoのFOMAが2026年に終わるみたいですね。
私の初ケータイは4G(XiだっけPremium 4Gだっけ)でしたのでセンター問い合わせはやったことないです。
うまく行けば来年には3G/4G/5Gの3世代の通信規格が出るのかあすげえなあ。

それと今回の話が関係あるかって話ですが、
なんとなく買ったガラホ(SHARPさんのNP601SH / Softbank)ってあれ画面回転しないんですね。
純正のアプリなら行けるけど私は[自作](https://play.google.com/store/apps/details?id=io.github.takusan23.tatimidroid&hl=ja)のアプリで回転させたいの!

# センサー使えばできそう
調べると同じようなことをやりたい人がいましたが何やってるのかまじでわからんかった。
いろいろ調べたんですがドキュメント
https://developer.android.com/guide/topics/sen

元記事を表示

React Nativeのviewpagerで現在のpageの位置を取得する(Androidのみ動作確認済み)

# やりたいこと
ReactNativeのviewpagerで現在のpageの位置(何番目のpageか)を把握。
https://github.com/react-native-community/react-native-viewpager

なぜやりたいかというと、viewpagerがdots(現在の位置が一目でわかる下部にある点)をAndroidではデフォルトでサポートしていなかったので自作しようとしたからです。

# 実装まで
ドキュメントを読んだところ
onPageSelected
というPropが使えそうと思ったので試しました。
ただ、トップページには使用例がないので、サンプルを確認
https://github.com/react-native-community/react-native-viewpager/blob/master/example/ViewPagerExample.js

大抵ReactNativeのライブラリにはexampleのファイルがあります。

# 実装
簡素化しています。

“`jsx
import ViewPager from ‘@rea

元記事を表示

【Kotlin】ギャラリーから画像を選択して、ImageViewに表示する

公式サイトを参考に、ストレージ アクセス フレームワーク(SAF)を使用する。
[ストレージ アクセス フレームワークを使用してファイルを開く  |  Android Developers](https://developer.android.com/guide/topics/providers/document-provider?hl=ja)

コードはGitHubに載せています。
https://github.com/orimomo/picture-frame-app/tree/master

# 1. ギャラリーを表示する

## コードと解説
“`kotlin
private fun selectPhoto() {
val intent = Intent(Intent.ACTION_OPEN

元記事を表示

Android Studio 4.0 新機能 (Canary 1)

# はじめに

[Android Studio 4.0 Canary 1](https://developer.android.com/studio/preview) が出たので、個人的に気になった新機能をまとめました。
マサカリ(こっそり)お待ちしてます :hocho:

– 参考
– [Android Studio 4.0 Canary 1 available](https://androidstudio.googleblog.com/2019/10/android-studio-40-canary-1-available.html)
– [What’s New in Android Studio (Android Dev Summit ’19)](https://youtu.be/XPMrnR1_Biw)

# Jetpack Compose のサポート
Jetpack Compose に対応しました!!
IDE上でプレビューを見ることができるので、確認しながらサクサク書けます。

Jetpack Composeって?? という方は[こちら](https://develo

元記事を表示

Android端末からMacのlocalhostに接続する際に苦戦した件

# やりたいこと
Android端末からMac Book Airのlocalhostにアクセスしたい。

Mac Book AirでWebページを開発中。Android端末とMac Book AirをUSB接続し、AndroidのChromeにて、http://localhost … とアクセスするとlocalhostにアクセスできる状態にする。

# 環境

“`
Mac OS: Mac OS 10.14.3
Android: バージョン7.0
端末機種: FTJ162D
“`

# 苦戦した箇所
USBケーブル不良でAndroid端末を認識しなかったのが要因であった。
どういう場合に、USBケーブル不良を疑うべきか記録する。

# 実施したこと

### Mac Book AirがAndroid端末を認識しているか知りたい

1. [Android File Transfer](https://www.android.com/filetransfer/) をインストール

2. `Android File Transferを起動。

3. 以下の画面が表示された場合、Mac

元記事を表示

WebView で forceDark を設定した時のメモ

Android の WebView で forceDark を適用するのに調査したので、メモとして残します。

WebView で forceDark を使う場面自体少ないかと思いますが、WebView で表示させてるプライバシーポリシーやライセンスの画面を黒くするために調査しました。

## Light テーマの場合

`Theme.AppCompat.Light` など DayNight テーマを使用していない場合はアプリのテーマに `android:forceDarkAllowed=”true”` を追加することで WebView を強制的に黒くさせることができます。

この方法の場合はアプリのテーマで強制的に色を黒くさせるため、必要な画面のみ適用させる必要があります。

## DayNight テーマの場合

デフォルトではテーマなどの `forceDarkAllowed` を参照して黒にするかを切り替えるようになっていますが、 DayNight テーマを使用している場合は `forceDarkAllowed` が適用されないため、`WebSettin

元記事を表示

OTHERカテゴリの最新記事