android

androidに関するすたっく

mermaidのガントチャートで休日と祝日を考慮して表示する方法
html

mermaidのガントチャートで休日と祝日を考慮して表示する方法

問題 mermaidでガントチャートを表示したとき、休日や祝日が考慮されないスケジュールになってしまう \```mermaid gantt title dev schedule(休日祝日なし設定) dateFormat YYYY-MM-DD axisFormat %m/%d section HTML 設計&開発ドキュメント作成: design_and_doc, 2020-04-13, 3d section Migration 設計: desgin_migration, after

  • zienchan
    zienchan
PDFBoxでのポイント(pt)とミリ(mm)の座標変換
java

PDFBoxでのポイント(pt)とミリ(mm)の座標変換

困ったこと JavaでPDFファイルを扱うライブラリとしてPDFBoxを使ったが、単位系がよくわからない そもそもポイント(pt)とは Point (typography) https://en.wikipedia.org/wiki/Point_(typography) を読む限りは1ptは1/72inch, つまり0.35277777777777775 mmらしい ちなみにポイント(pt)は更に複数の種類が存在するみたいだが、PDFやIllustlatorで扱うptはDTP Pointだったので、これからポイント(pt)といえばDTP Ptを指すことにする 実際に座標変換のコードを書く

  • zienchan
    zienchan
ERROR: The Android Gradle plugin supports only Kotlin Gradle plugin version 1.3.0 and higher.の修正
android

ERROR: The Android Gradle plugin supports only Kotlin Gradle plugin version 1.3.0 and higher.の修正

問題 Anroid Studio 3.2.1を使っていたが更新があるというので3.3へアップデートしたら ERROR: The Android Gradle plugin supports only Kotlin Gradle plugin version 1.3.0 and higher. と言われてアーハイハイとgradleファイルのプラグインのバージョンを更新した(つもりだった)がダメだった 対策 build.gradle dependencies

  • zienchan
    zienchan
TensorFlowLiteのJavaインタプリタでハマった話
java

TensorFlowLiteのJavaインタプリタでハマった話

環境 学習はKeras(back-endはTensorFlow)を使用 スマートフォン上のランタイムはTensorFLowLiteを使用 TensorFlow(PBモデル)からTensorFLowLite(FBモデル)へ変換(変換には公式のものを使用) 入力は8bitグレースケールの画像配列、出力はXY座標とした単純な回帰モデル 現象 下記のように8bitグレースケールで入力バッファを用意してXY座標を取得しようとした。 255で割っているのは、正規化しているため。 public synchronized void recognize(byte[] aImageBytes) { for(byte px : aImageBytes) { mInputBuffer.putFloat(px

  • zienchan
    zienchan
Androidアプリにjavascriptエンジン(DuktapeAndroid)を乗せる
android

Androidアプリにjavascriptエンジン(DuktapeAndroid)を乗せる

目的 AndroidアプリにJavascriptエンジンを搭載する 背景 ユーザーがアプリ上の機能を自由に拡張できるような仕組みを作るため 解決策 Java上でJavaScriptを実行(eval)させる方法はいくつかあるが、下記のサイトを参考にDuktape Androidを使うことにした comparison-shopping-searching-for-javascript-engines-for-android duktape-android 基本的には上記の公式に従って導入すれば良い 依存関係の追加 build.gradleの変更 implementation 'com.squareup.duktape:duktape-android:1.3.0' とりあえずjavascriptを実行させる 自分はkotlinで書いているので下記になる Duktape.create().use { x

  • zienchan
    zienchan
jcodecでお手軽にbitmapをmp4にする
java

jcodecでお手軽にbitmapをmp4にする

目的 BufferdImageに展開されたBitmapをコンテナに追加してmp4動画を作成する 背景 連番PNGや画面キャプチャしたBitmapを動画に変換したい 環境 言語: Kotolin エンコード形式:H264 フレームレート:30FPS 解像度:VGA 解決策 SequenceEncoderを使えば簡単でした メモリ上のBitmapから生成する場合でもBufferedImageのラスタのByteArrayに突っ込んでやるなりしてBufferedImageを作ればそのままいけるはず val tDestinationFile = File("destination.mp4") val tEncoder = SequenceEncoder.create30Fps(tDestinationFile) //とりあえず30枚(1秒)

  • zienchan
    zienchan
OpenCVのMatとbyte[]の相互変換
opencv

OpenCVのMatとbyte[]の相互変換

Android向けOpenCVでMatからbyte配列にする方法とbyte配列からMatにする方法です byte配列からMatへの変換 //仮にVGAで8bitグレースケールとする final Mat tDistMat = new Mat(640, 480, CvType.CV_8UC1); tDistMat.put(0, 0, tSourceBytes); Matからbyte配列への変換 byte[] tImageBytes = new byte[(int) (tSourceMatImage.total() * tSourceMatImage.channels())]; tSourceMatImage.get(

  • zienchan
    zienchan
Googleのマテリアルアイコンセットを使う
android

Googleのマテリアルアイコンセットを使う

アプリケーションを開発しているとなにかと困るアイコンですが、Googleが提供しているオープンソースなマテリアルデザインのアイコンを使うと捗るよというお話 目的 ソフトウェア開発で使うかっちょいいアイコンリソースが欲しい 解決策 GoogleのMaterial design iconsを使う どんなのがあるのか? GoogleのMaterial design iconsを参照するとリストが表示される ライセンスは? Apache License Version 2.0なので使いやすい 色を変更したいんだが白と黒しかないの? git clone https://github.com/google/material-design-icons して、SVGとかベクトル形式のものを動的に変更するなり変換してやればOK それ以外だとAndroid 5.

  • zienchan
    zienchan
Androidアプリでjava.lang.ClassNotFoundExceptionエラーになる
android

Androidアプリでjava.lang.ClassNotFoundExceptionエラーになる

今までは普通に動作していたあるアプリがAndroid 8系からデバッグで起動しなくなったので調査しました 環境 Android: 実機のAndroid 8系 Android Studio: 3系 proguard:有 言語:Java, C++(NDK) 現象 アプリを実機に転送して起動するタイミングでクラッシュする Logcatは下記の通り java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider:

  • zienchan
    zienchan
WebViewで表示されるHTMLをネイティブっぽく振る舞う方法
html

WebViewで表示されるHTMLをネイティブっぽく振る舞う方法

AndroidやiOSアプリケーション内でWebViewまたはUIWebViewを使用してHTMLをレンダリングしたいことがあります しかしハイブリッドアプリ(HTMLとネイティブの混合アプリ)の場合は何も考えずにやるのはUI/UX的によろしくないことになってしまうかもしれません 目的 何も考えずにWebViewにHTMLを表示してしまうと表示が崩れたり、画面内でコピーや選択、拡大縮小が可能だったり、リンクタップ時の画面遷移の仕方がネイティブ画面(Java/Swift/objective-c実装)の実装と異なるなどアプリケーションの操作に一貫性がなくなってしまうことが考えられます 今回はこれらを何とかする方法をまとめます 対応プラットフォーム iOS、Androidとしますが、PCでも大丈夫です ※後述するコールバック用のプロトコル実装がPCの場合はないので、アプリからの表示かどうかの識別は必要です iOSは8以降、Androidは2.3系以降を対象とします 課題 たかだかHTMLをアプリで表示するだけでも考えなければいけないことは沢山あったりします HTMLがフルスクリーン(横幅いっぱい)表示されない問題 拡大縮小できてしまう問題

  • zienchan
    zienchan