ImageViewでGifアニメーションを表示 2021.09現在
ImageViewでGifアニメーションを表示は、デフォルトでは出来なかった。
「画像ライブラリGlide」を使うと華麗、綺麗、簡単にImageViewにGifを表示できるとあったので備忘録
◆gradle(:app)にライブラリインポートを2行追加
implementation 'com.github.bumptech.glide:glide:4.11.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
◆gifアニメのファイルを格納
rawフォルダを作る
res/rawにファイルをコピーして格納
◆ImageViewをレイアウト.xmlに準備
<ImageView
android:id="@+id/gifanime"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
◆Activityで指定
ImageView imageView = (ImageView) findViewById(R.id.gifanime);
Glide.with(this).load(R.raw.ファイル名).into(imageView);
実行すると表示でアニメしていた。
firebase realtime database の ルール
フルアクセス可能ユーザと自身範囲のみアクセス可能ユーザのルール作成
当然データ構造は考慮が必要。
ルール部
{
"rules": {
// admin
".read": "auth.token.email == 'adminmail@gmail.com'", // メールアドレス指定可能
".write": "auth.token.email == 'adminmail@gmail.com'", // メールアドレス指定可能
// user
"usernode": {
"$uid": {
".read": "$uid == auth.uid",
".write": "$uid == auth.uid"
}
}
}
}
データ部
{
"param1" : "value"
"usernode" : {
"LuqVBertyuidfghjkghjkxc0tG096zYy1" : {
"item" : "1"
}
}
}
備忘録用 「===」厳密等価演算式がまだ使いこなせていない。
Firebase の BOM が理解できるまではあると便利なのかな?
classpath 'com.google.gms:google-services:4.3.3'との組み合わせ
Artifacts released on maven.google.com (出典:Google)
- com.google.android.datatransport:transport-api:2.0.0
- com.google.android.datatransport:transport-backend-cct:2.0.0
- com.google.android.datatransport:transport-runtime:2.0.0
- com.google.android.gms:play-services-ads:18.0.0
- com.google.android.gms:play-services-ads-identifier:17.0.0
- com.google.android.gms:play-services-ads-lite:18.0.0
- com.google.android.gms:play-services-afs-native:17.0.0
- com.google.android.gms:play-services-analytics:17.0.0
- com.google.android.gms:play-services-analytics-impl:17.0.0
- com.google.android.gms:play-services-appinvite:18.0.0
- com.google.android.gms:play-services-audience:17.0.0
- com.google.android.gms:play-services-auth:17.0.0
- com.google.android.gms:play-services-auth-api-phone:17.0.0
- com.google.android.gms:play-services-awareness:17.0.0
- com.google.android.gms:play-services-base:17.0.0
- com.google.android.gms:play-services-basement:17.0.0
- com.google.android.gms:play-services-cast:17.0.0
- com.google.android.gms:play-services-cast-framework:17.0.0
- com.google.android.gms:play-services-clearcut:17.0.0
- com.google.android.gms:play-services-cronet:17.0.0
- com.google.android.gms:play-services-drive:17.0.0
- com.google.android.gms:play-services-fido:18.0.0
- com.google.android.gms:play-services-fitness:17.0.0
- com.google.android.gms:play-services-flags:17.0.0
- com.google.android.gms:play-services-games:18.0.0
- com.google.android.gms:play-services-gass:18.0.0
- com.google.android.gms:play-services-gcm:17.0.0
- com.google.android.gms:play-services-identity:17.0.0
- com.google.android.gms:play-services-iid:17.0.0
- com.google.android.gms:play-services-instantapps:17.0.0
- com.google.android.gms:play-services-location:17.0.0
- com.google.android.gms:play-services-maps:17.0.0
- com.google.android.gms:play-services-measurement:17.0.0
- com.google.android.gms:play-services-measurement-api:17.0.0
- com.google.android.gms:play-services-measurement-impl:17.0.0
- com.google.android.gms:play-services-measurement-sdk:17.0.0
- com.google.android.gms:play-services-measurement-sdk-api:17.0.0
- com.google.android.gms:play-services-nearby:17.0.0
- com.google.android.gms:play-services-oss-licenses:17.0.0
- com.google.android.gms:play-services-panorama:17.0.0
- com.google.android.gms:play-services-phenotype:17.0.0
- com.google.android.gms:play-services-places:17.0.0
- com.google.android.gms:play-services-places-placereport:17.0.0
- com.google.android.gms:play-services-plus:17.0.0
- com.google.android.gms:play-services-safetynet:17.0.0
- com.google.android.gms:play-services-stats:17.0.0
- com.google.android.gms:play-services-tagmanager:17.0.0
- com.google.android.gms:play-services-tagmanager-api:17.0.0
- com.google.android.gms:play-services-tagmanager-v4-impl:17.0.0
- com.google.android.gms:play-services-tasks:17.0.0
- com.google.android.gms:play-services-vision:18.0.0
- com.google.android.gms:play-services-vision-common:18.0.0
- com.google.android.gms:play-services-vision-image-label:18.0.0
- com.google.android.gms:play-services-wallet:17.0.0
- com.google.android.gms:play-services-wearable:17.0.0
- com.google.firebase:firebase-abt:18.0.0
- com.google.firebase:firebase-ads:18.0.0
- com.google.firebase:firebase-ads-lite:18.0.0
- com.google.firebase:firebase-analytics:17.0.0
- com.google.firebase:firebase-appindexing:19.0.0
- com.google.firebase:firebase-auth:19.1.0
- com.google.firebase:firebase-auth-interop:18.0.0
- com.google.firebase:firebase-common:18.0.0
- com.google.firebase:firebase-common-ktx:18.0.0
- com.google.firebase:firebase-config:18.0.0
- com.google.firebase:firebase-core:17.0.0
- com.google.firebase:firebase-database:19.1.0
- com.google.firebase:firebase-database-collection:17.0.0
- com.google.firebase:firebase-datatransport:17.0.0
- com.google.firebase:firebase-dynamic-links:18.0.0
- com.google.firebase:firebase-firestore:20.0.0
- com.google.firebase:firebase-firestore-ktx:20.0.0
- com.google.firebase:firebase-functions:18.0.0
- com.google.firebase:firebase-iid:19.0.0
- com.google.firebase:firebase-iid-interop:17.0.0
- com.google.firebase:firebase-inappmessaging:18.0.0
- com.google.firebase:firebase-inappmessaging-display:18.0.0
- com.google.firebase:firebase-measurement-connector:18.0.0
- com.google.firebase:firebase-messaging:19.0.0
- com.google.firebase:firebase-ml-common:20.0.0
- com.google.firebase:firebase-ml-model-interpreter:20.0.0
- com.google.firebase:firebase-ml-natural-language:20.0.0
- com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.0
- com.google.firebase:firebase-ml-natural-language-smart-reply:18.0.0
- com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.0
- com.google.firebase:firebase-ml-natural-language-translate:20.0.0
- com.google.firebase:firebase-ml-natural-language-translate-model:20.0.0
- com.google.firebase:firebase-ml-vision:21.0.0
- com.google.firebase:firebase-ml-vision-automl:17.0.0
- com.google.firebase:firebase-ml-vision-face-model:18.0.0
- com.google.firebase:firebase-ml-vision-image-label-model:18.0.0
- com.google.firebase:firebase-ml-vision-object-detection-model:17.0.0
- com.google.firebase:firebase-perf:18.0.0
- com.google.firebase:firebase-storage:18.0.0
- com.google.firebase:firebase-storage-common:17.0.0
- com.google.firebase:protolite-well-known-types:17.0.0
- com.google.firebase:firebase-bom:20.0.0
Firebase real time databaseのデータベースの考え方
仮にRDB上で1つのデータベースに2つのテーブルがあるというイメージは
table1
+-----+-----+-----+-----+
|Item1| A | B | C |
+-----+-----+-----+-----+
|Item2| D | E | F |
+-----+-----+-----+-----+
table2
+-----+-----+-----+
|ItemA| 1 | 2 |
+-----+-----+-----+
|ItemB| 3 | 4 |
+-----+-----+-----+
|ItemC| 5 | 6 |
+-----+-----+-----+
がfirebaseだと以下のような表現1つのプロジェクトに2つのデータ
{
table1:{
item1:{
field1:A,
field2:B,
field3:C,
}
item2:{
field1:D,
field2:E,
field3:F,
}
}
table2:{
itemA:{
field1:1,
field2:2,
}
itemB:{
field1:3,
field2:4,
}
itemC:{
field1:5,
field2:6
}
}
}
※備忘録用
Firebaseのreal time databaseにデータの書き込みとリスナー読み込みをする
概念は後で説明。
行った事の箇条書き
< developer.google.com/products >からFirebaseを選ぶ。
・右上の「コンソールへ移動」をクリック
【プロジェクトを作成】
・「プロジェクトを追加」をクリックして
-プロジェクト名を英数文字(スペース可)で入力し[続行]を押す
-Google アナリティクスは分からなかったので「このプロジェクトで Google アナリティクスを有効にする」は無効にして[プロジェクト作成]を押す→[続行]を押す
-プロジェクト概要で開始するアプリでAndroidをクリックする
-・ここでAndroidStudioでStartNewProjectでアプリ作成->EmptyActivity->Name入力+Java+☑UseAndroidx.*->[Finish]を押す
-「Android アプリに Firebase を追加」画面になりAndroidパッケージにパッケージ名を入れて後は省略して[アプリを登録]を押す
-「google-services.json」をダウンロードしてAndroid開発の「Android Studio」の左上「Project」にして「/app/」フォルダにカット&ペーストする、[次へ]を押す
-AndroidStudioでFirebase SDK の追加を<project>/build.gradleは「classpath 'com.google.gms:google-services:4.3.3'」と<app-module>/build.gradleは「apply plugin: 'com.google.gms.google-services'」「implementation 'com.google.firebase:firebase-database:19.1.0'」をする
-[コンソールに進む]を押す。
・AndroidStudioのAndroidManifest.xmlに<uses-permission android:name="android.permission.INTERNET"/>を追加する
・https://firebase.google.com/docs/database/android/start?authuser=0 からMainActivity.javaをコピーして内容を自分のアプリに張り付ける
【Real Time Databaseを作成】
・Firebaseコンソールの左から「database」をクリックする
・「または Realtime Database を選択」から[データベースを作成]を押す
・「テストモードで開始」を選び[有効にする]を押す
ここまでで一連は出来て実験できました。
※備忘録用
com.google.firebase:firebase-coreは不要になった。
Android 端末の画面Pixサイズ取得
画面のPix数を取得
WindowManager wm = (WindowManager)getSystemService(WINDOW_SERVICE);
Display disp = wm.getDefaultDisplay();
Point size = new Point();
disp.getSize(size);
Log.d("Width=", String.valueOf(size.x));
Log.d("Height=", String.valueOf(size.y));
Pix数で設計している際のテキストフォントサイズの指定方法
TextView tv = (TextView) findViewById(R.id.textView);
tv.setTextSize(COMPLEX_UNIT_PX,float値);