365連休

にわかのandroidとかの開発メモ。

minSdkVersion16

AndroidのViewPagerのスワイプを一時的に無効化

ViewPagerのsetEnabledを設定してもスワイプを無効化できない。 そこでググったら code-examples.net 様々な方法を編み出してて笑った。 みんなViewPager好き過ぎ。 結局ViewPagerを継承し、setPagingEnabledを追加する方法を採用した。 //引用元 https://co…

ピンチ操作による拡大縮小やドラッグ移動ができるImageViewの実装方法(Android Studio)

①ピンチやドラッグを検出するOnTouchListenerを作る。②Matrixクラスのお勉強。③ピンチ操作に応じて座標やスケールを変更して描画するカスタムImageView。

Android Studio 3.5.0 のナビゲーションドロワーアクティビティを読み解く

Android Studio 3.5でアクティビティの新規作成から選べるテンプレートの「Navigation Drawer Activity」を読み解く。ついでにテンプレートのバグ退治もします。

【解決】java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver" on path: DexPathList[[zip file "/data/app/your.pack.name-1/base.apk"],中略/lib/arm64, /system/lib64, /vendor/lib64]]

「Androidアプリの開発中は問題無いが、Play Storeからインストールすると初回起動時のみ異常終了する件」の解決編です。 Crashes the first time the app starts. When installing from PlayStore. 前提条件 Gradle 5.1.1 Android Gradle plugin 3.4.0 minS…

Android Studio 3.4でビルド後にアプリの起動(Instant Run)に失敗する

ある日突然、ビルド&実行ができなくなる。 ググったらこういうケースがあるみたいです。 ログにはresources_apがFileNotFoundExceptionと出てます。 確認したら、実際ファイルはありませんでした。 正常に動いているプロジェクトには存在しています。 なぜか…

【事案】Androidアプリをストアからインストールすると初回起動時のみ異常終了する(# ゚Д゚)

【解決】java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver" on path: DexPathList[[zip file "/data/app/your.pack.name-1/base.apk"],中略/lib/arm64, /system/lib64, /ve…

Android Studio 3.4のButtonで余白があるのに文字が見切れる件を何とかする。

AndroidのButtonでテキストサイズを大きくしたら、余白があるのに上下が見切れてしまったので何とかする。

Android Studio 3.4でListViewを斜めスクロールする方法(今更感) Diagonal Scroll!!

ListViewでまさかの斜めスクロールを実現。Diagonal Scroll Sample Code!!

Android Studio 3.4でListViewおよびGridViewを使うサンプルコード

Androidでリスト形式のUIを使いたい場合、ListViewやGridViewが手ごろです。 しかし、データの表示には奇怪なAdapterクラスを使用しなければいけません。 個人的にAdapterはだいっっっっきらいですが、少しだけ打ち解けたのでサンプルコードを置いておきます…

Android Studio 3.4でプロジェクト作成時にAndroidXを適用する。

Android Studio3.4で新規にプロジェクトを開始するとき、デフォルト設定で作るとSupport Library 28が適用されます。 AndroidX!なにそれおいしいの? - 365連休 後からAndroidXへリファクタリングできますが、無用のトラブルを避けるため、最初からAndroidX…

Android Studio 3.4 Permission & AdMob & GDPRに対応したActivityのサンプル(EU の e プライバシー指令と一般データ保護規則)

自分用のサンプルコードとして、Permissionの取得、AdMobの表示、EUユーザ向けのGDPR対応の機能を持った単一アクティビティのひな形を作りました。個別には大体理解してるけど、「じゃあ全部くっつけたらどうなるの?」という実装案。ベストプラクティスとか…

drawableディレクトリ、mipmapディレクトリ

mipmapはAndroid4.2からサポートされたため、minSDKがそれより古いならdrawableディレクトリにも画像リソースを置いておく必要がある。と解釈。 qiita.com developer.android.com Mipmapping for drawables Using a mipmap as the source for your bitmap or…

【解決】Android 4.4以下でDrawable Resource(ic_vector.xml)を使用するレイアウトがあると、実行時にandroid.content.res.Resources$Not-Found-Exceptionが発生する

前の記事の続きです。 適当に設定を書き換えているだけでは埒が明かないので、一から歴史を勉強してきました。 そもそもVector Drawableリソースを使えるようになったのはAPI21 Android5.0 Lollipopからで、それよりも前のバージョンでDrawableリソースを扱…

【事案】Android 4.4以下でDrawable Resource(ic_vector.xml)を使用するレイアウトがあると、実行時にandroid.content.res.Resources$Not-Found-Exceptionが発生する

解決編は次の記事を見てね。 Activityのレイアウトファイル内で、SeekBarにベクター形式のドローワブルリソースを使用したら、実行環境のAndroidバージョンによってアプリの起動に失敗するケースに遭遇。 LogCat say "android.content.res.Resources$NotFoun…

ずっとSENSOR_STATUS_UNRELIABLEのAndroid搭載センサー(# ゚Д゚)

表題の通りです。 安定の踏み抜き率。 センサーから測定値を取得するには、大体次のようなSensorEventListenerになると思います。 @Override public void onSensorChanged(SensorEvent event) { if (event.accuracy == SensorManager.SENSOR_STATUS_NO_CONTA…

Androidには同じタイプのセンサーが複数ある

表題の通り。 Sensorのリスナーでよくあるサンプルコードのようにループで登録しなかったらハマった。 //お手本 final List<Sensor> sensors = mSensorManager.getSensorList(Sensor.TYPE_ALL); for(Sensor sensor:sensors){ if(sensor.getType()==Sensor.TYPE_MAGNE</sensor>…

Camera.Parameters.getSupportedFocusModes()の戻り値をenumにしてみた。

android.hardware.cameraのCamera.Parameters.getSupportedFocusModes()の戻り値はParameters内にString定数として書いてありますが、enumが好みなのでまとめてみました。 /** Camera.Parameters.FOCUS_MODEをまとめたもの<br/>FOCUS_MODE.HOGE.equals()で比較を</br/>…

Javaの内部クラスのインスタンス化

android.hardware.CameraのCamera.Sizeをnewしようと思ったら、Android Studioのコード解析で Camera.Size size = new Camera.Size(100, 100); 'android.hardware.Camera' is not an enclosing class って叱られた。日本語でお願いします。 ' アンドロイド. …

Android Studioでアスペクト比を表すクラスを作ってみた

HashMapのキーにアスペクト比を設定したくて作ってみた。 Map<Aspect, HashSet<Camera.Size>> ↑こういうのをしたい コピペは自己責任で。 バグっても責任取れませんので。 Javaの事はよく知らないので、比較はfloatじゃなく100倍したintを使用。 コンストラクタでアスペクト比を計算して、</aspect,>…