- 0.0.1. 【Android】TextViewの横に画像を表示するレイアウト方法 4選
- 0.0.2. Jetpack ComposeのSlotTableがちょっと読めるようになるメモ
- 0.0.3. Notificationのなんとなく使っているけど正確な意味がよく分からない部分を調べてみた
- 0.0.4. ウマ娘イベント選択肢チェッカーをAndroidで作る
- 0.0.5. AndroidStudioでアプリが実行できないとき
- 0.0.6. adbコマンドまとめメモ
- 0.0.7. 【Android】MediaPlayerで音楽プレイヤ―を作ってみた。(Kotlin版)
- 0.0.8. 【Android】GeoCorderで日本の住所を取得・整形する
- 0.0.9. 【Android】ViewModel導入【Kotlin】
- 0.0.10. Android Studio(Windows10)でエミュレータ電源起動しない時の対処
- 1. 概要
- 2. 前提
- 3. 対処法①haxmをインストール
- 3.0.1. AndroidでFirebaseを用いたTwitterログイン
- 3.0.2. Compose Navigationで使えるNavBackStackEntryのlifecycleとは?
- 3.0.3. Androidで今すぐバックアップがグレーアウトするバグの回避法
- 3.0.4. Android Studioのビルドが終わったら通知音を鳴らす
- 3.0.5. 【Flutter】ボタンを再利用可能にして使いまわしたい【初学者向け】
- 3.0.6. 【Android】Jetpack Compose × MVVM × Hilt × マルチモジュールでポケモン図鑑作ってみた【Jetpack Compose】
- 3.0.7. 【SwipeRevealLayout】RecyclerViewの行スワイプでのメニュー表示を簡単に実装する。[Android]
- 3.0.8. Android Studio Arctic Foxで日本語が豆腐になる問題のwork around
- 3.0.9. Chromebook で Android Studio の Flutter 開発環境を作る
- 3.0.10. UserLAndのsshをパスワード無しで使えるようにする
【Android】TextViewの横に画像を表示するレイアウト方法 4選
#はじめに
TextViewの横に画像のリソースを表示をさせたい状況がありました。
試行錯誤したレイアウト方法をメモしておきます。
困った時に参考にしてください。まずベースとなるテキストだけのLayout定義はこちらです。
“`xml:layout.xml
Jetpack ComposeのSlotTableがちょっと読めるようになるメモ 普通にComposeをやる場合は絶対に知らなくていい情報です :warning:
SlotTableはJetpack Composeのデータ構造のコアとなる部分である認識です。普通にやるとAndroidのテーマとか色々設定されちゃうので、自作したAppilerなどで最低限のComposeのコードのみの場合で実験してそのデータなどを載せています。
https://github.com/takahirom/draw-android-view-by-jetpack-compose/blob/simple/src/main/kotlin/Main.kt#L63
“`kotlin
@Composable
private fun Node() {
ComposeNode(
factory = {
Node(mutableListOf())
},
update = {
},
)
}
“`## SlotTable.asString()の結果
Notificationのなんとなく使っているけど正確な意味がよく分からない部分を調べてみた
Notificationってなんとなく使ってはいるけど、正確な意味って実はよく分かっていないって部分があったりしませんか?
私自身、質問されたときに正しく答えられる自信が無かったので調べてみました。# PendingIntent
NotificationにPendingIntentを付与して、タップされたときのアクションを指定することができます。
“`kotlin
val intent = Intent(this, MainActivity::class.java).also {
it.flags = Intent.FLAG_ACTIVITY_NEW_TASK
it.putExtra(EXTRA_NOTIFICATION, “Notification $num $count”)
}
val pendingIntent = PendingIntent
.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)
“`## requestCode
PendingIntent.get
ウマ娘イベント選択肢チェッカーをAndroidで作る
# Android端末でも楽して「うまぴょい!」したい
普段PC版でよく愛馬の育成するのですが、そこで便利なイベント選択肢チェッカーを[@Carteletさん](https://qiita.com/Cartelet)の記事を参考に自作してみました。
[[Qiita] 「画像認識ウマ娘イベント選択肢チェッカー」をPythonで作るチュートリアル](https://qiita.com/Cartelet/items/9affdd7440c218bc080d)
[出来たもの -> [Github] uma-event-checker](https://github.com/Seo-4d696b75/uma-event-checker)python+豊富なライブラリでバクシン的開発!便利ですね。ではでは手元のスマホでは?Androi
AndroidStudioでアプリが実行できないとき
##事象
GitからクローンしてきたプロジェクトをAndroidStudioで開いた時に
アプリが実行できないときがある。
(Run’app’や Debug’app’のボタンが非活性になってしまう)##原因
app/build.gradleファイルのbuildToolsVersionに指定されているバージョンが
インストールされていないときに発生する。##対応
対応法としては、SDK Managerを開き、SDK Toolsタブで
右下の「Show Package Details」にチェックを入れる。
詳細なバージョンが表示されるので、app/build.gradleファイルのbuildToolsVersionに指定されている、
バージョンにチェックを入れ、インストールすると解消する。
adbコマンドまとめメモ
## adbとは
Googleの[Android開発者ページ](https://developer.android.com/studio/command-line/adb?hl=ja)によると、以下のように説明されています。> Android Debug Bridge(adb)は、デバイスと通信するための多用途のコマンドライン ツールです。
Android開発者はもちろん、テスターやFlutter開発者にも使えるテクニックです。「こういったツールが用意されているから、iOSも好きだけどAndroidも良いよね」と感じます。
## 環境設定(adb: command not foundとなる場合)
adbコマンドが使えない場合は、以下の記事を参考にパスを通すこと
## 目的
最近adbコマンドを使う機会が増えてきたので個人的なまとめをQiita上に置いて置きたい。自分が使うものだけまとめたい。
最近、Qiitaがどこからでも参照出来て便利なことに気
【Android】MediaPlayerで音楽プレイヤ―を作ってみた。(Kotlin版)
#1.概要
MediaPlayerで音楽プレイヤ―を作ってみました。以前、ネット上でJava版の音楽プレイヤのソースコードを見つけてコピペし、更に内部ストレージのDownLoadフォルダやGoogleドライブから音源を選び再生できるように改造したことがありました。最近少しKotlinが分かるようになったので、改めてMediaPlayerクラスについて勉強し、また併せてstartActivityForResultが非推奨になったのでregisterForActivityResultにリファクタリングしました。![TestMediaPlayer03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501068/4589498a-30cd-fa76-c1dc-b8851d18d6aa.png) ![Picker.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501068/596f0d2e-c7e2-3f14-4172-
【Android】GeoCorderで日本の住所を取得・整形する
# はじめに
位置情報系のアプリなら住所表示機能も割とありますよね。
Androidアプリで緯度経度から住所を取得するのにGeoCorderを利用しますが、日本の住所はそのまま使うと綺麗じゃないなと思ったので整形処理を書いてみました。# コード
“`kotlin
/** 緯度経度から住所を取得する */
suspend fun getAddress(context: Context, latLng: LatLng): String? = withContext(
Dispatchers.IO) {
try {
val geoResult = Geocoder(context, Locale.getDefault()).getFromLocation(
latLng.latitude,
latLng.longitude,
1
)
geoResult.firstOrNull()?.let {
var address = it.
【Android】ViewModel導入【Kotlin】
##①依存関係の追加
build.gradle(:app)ファイルを開きdependencies{}内に依存関係を追加する
“`build.gradle(app)
dependencies{
…
def lifecycle_version = “2.2.0”
//ViewModel
implementation ”androidx.lifecycle:lifecycle-viewmodelktx:$lifecycle_version”
}
“`画像で確認したい方はこちら
![GitHubSampleApp_–_build_gradle___app_-5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1062113/0b935c5b-43ba-0acf-b69b-1da7014b0982.png)※他の記事や、本を参考にすると、ViewModelを利用するために、Lifecycle Extentionsという
パッケージが必要になるということが書かれておりま
Android Studio(Windows10)でエミュレータ電源起動しない時の対処
概要
エミュレータ使えるまでに行ったことを2つ記述します。
前提
エミュレータの電源はつかないものの画面が黒いまま動かないという状態まではできていること。
対処法①haxmをインストール
エラーメッセージのリンク先からたどり着いた下記からhaxmをインストール。インストールする時には「windowsの機能の有効化または無効化」から仮想関連のチェックをオフにする必要があります。私の場合は仮想マシンプラットフォームとハイパーバイザープラットフォームをオフにした状態でインストールしました。
https://github.com/intel/haxm/releases![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/630191/f1c15d0c-1265-8f8e-491f-c0cab8ef1d83.png)
対処法②emulator -avd{作成した仮想デバイス名}-gpu swiftshader_indirectを
AndroidでFirebaseを用いたTwitterログイン
# はじめに
何か特別な背景があるわけではないですが、AndroidでTwitterログインをするサンプルアプリを作る機会があったので備忘録的にここに残しておきます。[→リポジトリ](https://github.com/Papillon6814/TwitterFirebaseAndroid)
AndroidでTwitterログインをするにはFirebaseを使うやり方と、Twitter4jをやり方の2つを見つけました。僕は個人的にFirebaseが好きなので前者のやり方で実装しました。基本的に[Firebaseの公式の説明](https://firebase.google.com/docs/auth/android/twitter-login?hl=ja)に沿って進めていますが、Twitter APIの審査はすでに通っているものとします。Firebaseの設定でアクセストークンやAPIトークンなどを使用するので、それらも用意が必要です。
## 動作環境
M1 MacBook Pro
BigSur 11.3.1# Androidプロジェクトの作成
Firebaseの設定を
Compose Navigationで使えるNavBackStackEntryのlifecycleとは?
例えばComposeで動画再生したいけどonStopで止めたいときとかありますよね?
先日、ComposeのNavigationで画面単位で取得できるNavBackStackEntryにlifecycleがあることを知りました。これはAndroid JetpackのいわゆるArchitecture ComponentのLifecycleです。
https://github.com/DroidKaigi/conference-app-2021/blob/4868675fd7d8dee8711ee5a4d1c564c1b86eab97/uicomponent-compose/main/src/main/java/io/github/droidkaigi/feeder/AppContent.kt#L94このlifecycleはどのようになっているのでしょうか?
以下のようにNavBackStackEntryで保持されていて、“`kotlin
private var lifecycle = LifecycleRegistry(this)
public override fun get
Androidで今すぐバックアップがグレーアウトするバグの回避法
まず機種はxperia 8 liteで起こるバグで、画面ロックを設定した状態で「今すぐバックアップ」のボタンがグレーアウトしてバックアップができないというバグを見つけました。
ロックの設定を外せば青いボタンになってバックアップできるのですが、なぜかロックをかけるとグレーアウトする。
同じ症状で悩んでいる人が散見される中、メーカーもショップも対応してくれないので自分で解決策を見つけました。
Androidのバックアップはグーグルドライブに保存されるのですが、もう一つの方法としてGoogle Oneを使ってバックアップをするという方法があります。
そしてグーグルoneを使ってシステムのデータをバックアップして、後でもう一度バックアップの設定をみるとなんと「今すぐバックアップ」ボタンが青になって無事にバックアップを取れるようになりました。私はスマホを2回工場出荷状態まで初期化して、この症状と解決を2回再現できたので、これは明らかにバグだと思います。同じバグに悩まされている人がいたら、このやり方を試してほしい。(というか、この2つの方法は同じらしい)
ネットにあるのは2,3日放置すると直
Android Studioのビルドが終わったら通知音を鳴らす
Android Studioでビルドしている間に、PCから離れて他のことをしたいときにちょっと便利です。
# 設定方法
Android Studioの設定の、 “Appearance & Behavior” → “Notifications” を開き、”Gradle Build(Balloon)” を選択する。そこの “Play Sound” をチェックする。
これで、Gradleによるビルドが終わったら、PCの通知音が鳴るようになります。![スクリーンショット 2021-07-06 16.12.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227196/fdc3a97b-edcc-d1eb-df6f-347c1dc06a6f.png)
同じくその1つ下の “Gradle Build(Logging)” を選択し、そこの “Play Sound” をチェックする。
“Gradle Build(Balloon)” は、アプリのビルドでは通知音がなるのですが、修正の反映やテストの実行時は通知音
【Flutter】ボタンを再利用可能にして使いまわしたい【初学者向け】
##前置き
↓みたいなボタンがあったとします
似たようなボタンが2つ並んでいますね。また他のページでも同じデザインのボタンを多数使用する予定です。
そうなると当然、同じ記述を何度も何度も書くのは面倒になってきます。
デザインとしてはほぼ同じですので、背景色やテキスト、またボタンを押した際の挙動などの一部だけを変更できるようにすれば、無駄な記述が減りコードがすっきりしますよね。
![スクリーンショット 2021-07-05 091102.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/455043/cc9fc80a-dcd7-d975-2ebf-7a9196b0ec47.png)##Extract Widgetする
水色で囲った部分が再利用したい部分です。
再利用したいウィジェット(この場合Padding)部分をクリックすると、電球マークが現れます(赤枠で囲った箇所。画像はVSCodeのものですが、android studioでもたぶんほぼ一緒だと思います)
![無題.png](https://qii
【Android】Jetpack Compose × MVVM × Hilt × マルチモジュールでポケモン図鑑作ってみた【Jetpack Compose】
# はじめに
最近のAndroid界隈でホットな話題といえば、そう。**Jetpack Compose**。
こないだやってた[I/O Extended Japan 2021 – Android](https://youtu.be/Gqlapty5QXo)でもJetpack Composeの話題で持ちきりで、「xmlはオワコン」なんて言われる始末。
これはうかうかしてられないってことで、早速ポケモン図鑑作ってみた。こんな感じ。
Home | PokemonDetail
:–: | :–:
| 【SwipeRevealLayout】RecyclerViewの行スワイプでのメニュー表示を簡単に実装する。[Android]#参考
https://github.com/chthai64/SwipeRevealLayout#完成形
![kanseikei.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/975063/b56fa8c4-068e-b7aa-b293-37c7fb26b8aa.gif)
今回のコード
https://github.com/RiutaDaiki/recycler_swipe
#Gradle
“`
dependencies {
compile ‘com.chauthai.swipereveallayout:swipe-reveal-layout:1.4.1’
}
“`ちなみに’compile’は非推奨とされていて、代わりに’api’や’implementation’が推奨されています。
#行ごとのレイアウト
“`kotlin:item_swipe_recycler.
Android Studio Arctic Foxで日本語が豆腐になる問題のwork around
Android Studio Arctic Fox (2020.3.1) Beta 5 時点で日本語が豆腐になる問題があります。
IDE 側が修正されるとは思いますが、それまでの一時凌ぎになります。Preference から Appearance & Behavior > Appearance で `Use custom font` を有効にすると(選択する Font が日本語に対応していれば)日本語も正しく表示されるようになります。
![スクリーンショット 2021-07-05 11.20.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126298/0e58da4a-baf2-a4ef-9d93-d2b006883fb0.png)
|Before|After|
|:–:|:–:|
| ![スクリーンショット 2021-07-05 11.32.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126
Chromebook で Android Studio の Flutter 開発環境を作る
何となくスマホアプリを作りたくなったので、Flutter に手を出すことにしました。というわけで、Chromebook + Android Studio でハローワールドまでの流れを説明していきます。
以下の以下の公式ページに沿って進めただけなのですが、英語なのと微妙にハマりどころ (見落としとか) があったので、一通り書いていこうと思います。基本的に最近の技術は公式のチュートリアルがすさまじく親切なので、基本的にはこのような記事より公式を読んだほうがいいと思います。
https://flutter.dev/docs/get-started/install/chromeos# flutter をインストールする
適当なディレクトリに git clone で flutter を配置します。私は /opt/flutter となるように配置しました。“` bash:コマンド例
/opt$ git clone https://github.com/flutter/flutter.git
“`次に flutter と dart コマンドを実行できるようにパスを通します。私は
UserLAndのsshをパスワード無しで使えるようにする
# 概要
– UserLAndでsshを使うと必ずパスワードを要求される
– 同じ端末内でパスワードが必要なのは面倒すぎるので改善方法を考えてみた# パッチ
– ソースコードの修正が必要そうだったのでパッチを作成
https://github.com/yas99en/UserLAnd/commit/48add3c75fa53a0fb7df19c40e69b23f21a270ec#diff-d09f5fd256f91bc472d526d63bda8538da0190b99488ddf5fea414823ae405e2
# バイナリ
前回の投稿でかいたctrl-space-workaround
https://qiita.com/yas99en/items/22d58deaf1ddaa38819a
も含めたバイナリを作成、以下からダウンロード可能
https://github.com/yas99en/UserLAnd/releases/tag/v.2.7.3-yas99en-1
# 使い方
– .sshの作成(無ければ)
“`text
$ mkdir ~/.ss