テック-Android
nendの広告枠の承認を頂いたので、Androidアプリに設定を行っていた。 SDKの組み込み自体はマニュアルを見ながら簡単に行え、テストAdの表示まで順調に完了できた。 ところが、本番用のapikeyとspot idに差し替えてみたところ、広告表示が行われない... で、…
概要 WebViewでロードしたページの広告表示を制限する Hacking up an ad blocker for Android | Ha Duy Trung’s Blog こちらのページを参考に実装を行った。 ミュートする広告配信ホスト一覧の取得 https://sites.google.com/site/hosts2ch/ja より日本国内…
質問をしてから半日ほどですごく丁寧な回答が来ました。 こういった実装をしていた で、どういった内容の違反だったかと言うと、僕のアプリの場合、ActionBarに敢えてテキストを非表示にする処理を施していたんだけど、ご存知の通り、ActionBarに表示するデ…
昨日のアプリ削除対応から束の間、またGoogle Playより別のアプリ削除のメールが届いた。 今度は虚偽の振る舞いに関するポリシーに違反していると判断されたため、Google Play での公開が停止され、削除されました。とのこと。 で、今回はアプリ停止という状…
突然、こーんなメールがGoogleより届いた After review, FF14タイムズ, packagename, has been removed from Google Play because your app title violates our impersonation policy. This app won’t be available to users until you submit a compliant u…
最近のOSでは丸型のランチャーアイコンなんかにも対応しているらしく、全サイズのランチャーアイコンを作成するのは、Image Assetを利用するのが便利。 利用の仕方は簡単で、ランチャーアイコンとする背景透過のPNGを用意する。 Foreground Layerを選択してA…
AndroidのWebViewでアメブロブログの画像が出ない問題。 どうやらアメブロはブラウザのDomストレージにアクセスしているようで、WebViewにストレージアクセスを設定しておく必要がある。 エラーログ Uncaught "TypeError: Cannot read property 'getItem' of…
都度ググってしまうのでここにメモしておく。 日時の加算、減算 Calendarクラスを使用する。 この例では7日前をDateオブジェクトで受け取る。run{}を使うとすっきり書ける。 val prev_week:Date = Calendar.getInstance().run { add(Calendar.DATE, -7 ) //7…
多分、みんなListの中にオブジェクトをぶち込んで利用することが多いと思う。 Listの中の特定のオブジェクトをいくつかfilterしたい場合とかどうやってるのかなあ...と思った。 こんな感じで書いたんだけど果たして... この場合はmuteListの中に含まれるオブ…
ViewPagerで表示されているFragmentによって、不要なActionBar Itemがある場合に非表示とする。 Itemオブジェクトの保存 MenuItem生成時に表示制御を行いたいItemをメンバとして記録しておく。lateinitで宣言すると、ViewPagerに渡した時にまだ初期化されて…
例えばViewPagerに配置したFragmentに地図を配置したい場合などなど。 そのままFragmentのレイアウトにベタっとSupportMapFragmentを配置して、
APIキーの取得 MapViewを利用するには予めAndroid用GoogleMapのAPIキーを取得しておく必要がある。 Google Cloud PlatformでAPIキーの取得を行っておく。 プロジェクトを作成後、APIとサービスを有効化からMaps SDK for Androidを選択すれば良い。 プロジェ…
まずはFFIVタイムズ! play.google.com これは作者自身もプレイしてるオンラインRPG、FF14というゲームのアンテナアプリだ。 自身もiPhoneのFF14のアンテナアプリ使ったりするんだけど、広告が邪魔だったり、サムネが重かったりしてギガ食いそうだから不満部…
現在の導入手順に従って、最新のfirebase-coreのライブラリ implementation 'com.google.firebase:firebase-core:17.0.0' を入れると、利用しているSupport Library次第ではAndroidXのSupport Libraryが必要と叱られます。 manifest merger failed : attribu…
開発中のビルドは問題なく通ってたのですが、ストア公開用の署名付きビルド作成時にこういったエラーが発生し、ビルドが失敗しました。 Error: null, Cannot fit requested classes in a single dex file (# methods: 71451 > 65536) The number of method r…
FFXIVのブログアンテナアプリ、FF14タイムズをリリースしました。Android端末をお持ちのFF14プレイヤー様は攻略やプレイヤーの交流に是非、お役立て頂ければ幸いです。 play.google.com 同様のアンテナアプリはいくつかあって、電車の中等でよく利用するので…
floatingActionButtonを floatingActionButton.visibility = View.INVISIBLE のようなことをすると、 VisibilityAwareImageButton.setVisibility can only be called from within the same library group (groupId=com.android.support) less... (⌘F1) Inspe…
インターネット上に置かれている画像ファイルをダウンロードして表示するにはGlideが便利。 簡単な記述で接続からファイルダウンロード、描画、キャッシュの管理まで行ってくれます。 github.com 導入 app/build.gradle implementation 'com.github.bumptech…
昨日、RecyclerViewのクリックイベントがどうしても取得できずハマってしまったのでメモしておきます。 RecyclerView onClickイベントの基本系 Layout RecyclerViewの中のitemを以下のようなレイアウトにした場合、
RecyclerView & CardViewの上にprogressBarを表示しようとした時、CardViewが最前面に表示されprogressBarがCardViewの下に潜ってしまうケースがある。 ViewのZ軸高さの設定 android:elevationでZ軸の高さを設定する。他Viewにandroid:elevationの設定がない…
よくあるこういったUIのやつ コンテンツ部分を横スワイプでタブが左右に切り替わる 使用するコンポーネント ViewPager スワイプに応じてページングされたFragmentを生成し、自動でアタッチする。 TabLayout TabのUI表現及び、リスナーを管理する。また、生成…
APIで取得したJsonデータをパース、Modelメンバにパースした値をセットしてオブジェクトを返す。という処理をtemplate method的な固有実装のみサブクラスに実装したかったので勉強しました。 クラス関係 //ジェネリクスは継承先のクラスが指定する open abst…
導入 ProgressDialogはdeprecatedになったので、ProgressBarを使用する <ProgressBar style="?android:attr/progressBarStyle" android:id="@+id/progressBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="invisible" /> style="?android:attr/progressBarStyle"でくるくる回るインジゲーターや横棒の進捗バ…</progressbar>
導入 android.support.v4.widget.SwipeRefreshLayoutを使用する。 サポートライブラリを指定せず、<SwipeRefreshLayout></SwipeRefreshLayout>と記述すると、Error inflating class SwipeRefreshLayoutとなり、ビルドは通るがXMLパースでコケる。
Androidアプリ開発自体、Apache License 2.0 のOSSを使用して開発を行う為、インクルージョン表記や帰属表記が必要。 こちらを使うと簡単に使用ライブラリがリスト化されたActivityを生成できます。 github.com 導入 Add the Gradle plugin project/build.gr…
いつも、あれ?どうやって書くんだっけ?と都度ググっているので整理したことをメモ。 無名関数 基本 宣言と同時に関数オブジェクトに val func1 = fun(data:Int):Int{ return data } func1( 1 ) 宣言済みメソッドを関数オブジェクトに fun returnInt(data:I…
Androidアプリにadmobの広告を入れようとして、build.gradleに implementation 'com.android.support:appcompat-v7:27.+' implementation 'com.google.android.gms:play-services-ads:17.2.0' と記述したら、ライブラリの中に27.1.1と26.1.0が混在していて、…
View自体のプロパティにradiusの設定はないので、shapeタグを使ってbackgroundに当て込みを行います。 shapeタグとは? 画像ファイルを使わずにマークアップでグラフィック表現が行える記述方式。 strokeでViewに枠線を入れたりpaddingでView内側の余白管理…
var と val の違いとは? var : 再代入可能な変数(読み書き可能な変数) val : 読み込み専用の変数 以下のような操作を行った時、valではbuild errorとなります。 class Foo{} val foo = Foo() foo = Foo() //変数fooに再度Foo()インスタンス valについて い…
タイトルは釣りです。ごめんなさい。 昨日、ハマってしまったのでRecyclerViewについて整理したことをメモ。 RecyclerViewの最小構成 layoutファイル activiity_main.xml 画面幅一杯のRecyclerViewを配置