くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

Android

AndroidのDatePickerDialogで最初に年選択を表示する

Twitterみていたら@_monoさんのすてきなツイートを見つけたので、さっそく試してみたときの備忘録 年のところを押すと年選択できるの分かりにくいので、僕は初期表示を年選択モードにしてる( ´・‿・`)(選択済みの場合は日付選択モードを初期表示) https://t.c…

【Android】アドフリくんをAndroid9.0を使うための追加設定

Androidアプリの広告表示にアドフリくんを使っているけど、Android9.0にしたらクラッシュした。。 Android9.0でいろいろ変わったらしいので、そのときの備忘録。 変更点は以下でアナウンスされている。 動作の変更点: API レベル 28+ をターゲットとするアプ…

【Android】drawable配下にあるURI

drawableにある画像を、URIでImageViewに渡したいなと思ったときの備忘録。 Stack Overflowにあったので、引用。 URIは、"android.resource://<パッケージID>drawable/<drawableのID>"らしい Uri uri = Uri.parse("android.resource://your.package.here/drawable/image_na</drawableのid>…

Androidで回転情報(EXIF情報のTAG_ORIENTATION)を含めて画像を縮小する

Androidからサーバに画像を保存する際に、Android側で縮小したいなと思った時の備忘録。 特にハマったのはローテート情報... 縮小するだけだとEXIFがないので、ImageViewで表示すると回転しない。。 流れとしては、以下の感じ 元画像のローテーション情報(EX…

AndroidのListViewで先頭に要素を自然に追加する

ツイッターみたいに、上方向の自動読み込みを実装したいなと思い、 ListViewの先頭に追加しても、スムーズにスクロールできる方法を、いろいろ調べたときの備忘録。 ほぼこの記事のまま、すごい。。 以下は、コメントとかを追加したくらい // 要素を一番上に…

Android EmulatorでDBのバージョンを手動で戻す

正攻法は、バックアップ&リストアだけれど、開発中だとちょっとだけ戻して、 スキーマの更新の処理を確認したいときがある。 Androidで使うデータベースのバージョンは、SQLiteのuser_versionを使っているので、 無理やり手動で変更すれば、OK。やり直しが…

AndroidのEmulatorに入ってSQLite3でDBの中をみてみる

AndroidのEmulatorに入ってSQLite3でDBの中身をみるときの備忘録。 ひさびさにDBのマイグレーションをするときに、今どうだっけ?を見たかったが、 やり方忘れてたので、その時のメモ Emulatorにログイン $ adb shell アプリの権限に変更 $ run-as <package-name> dbの中を</package-name>…

AndroidのWebViewでInstagramを表示する

InstagramのOAuthをAndroidで使おうと思ったら、WebViewが開けず。。 そのときにいろいろ調べたときの備忘録 JavaScriptを有効にすればOK WebViewのSettingsでJavaScriptを有効にするとうまく動いた! WebView webView = findViewById(R.id.webView); webVie…

【Android】パーミッション無しで画像のURIを取得する

別のActivityをファイル選択ダイアログ的に使う方法。 よくやるけど忘れるやつ。よく忘れるのでφ(..)メモメモ 画像選択するActivityを開く int RESULT_PICK_IMAGEFILE = 1000; Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); intent.addCategory…

AndroidのAlarmManagerに再度入門する

いつもAlarmMangerには悩まされるのので、再度調べてみたときの備忘録。。version追従辛い。。 AlarmManagerで設定するサンプル Context context = ....; // AlarmManagerを取得する AlarmManager alarmManager = (AlarmManager) context.getSystemService(C…

Android7.xで電話・通話の自動応答できるようにするまで

Androidはバージョンが上がるごとにセキュリティ対策が進み、利用できなくなるAPIがある。 電話の自動応答もその一つで。数少ない情報も使えない場合が多い。 調べてやってみたこと ITelephonyを使って、acceptCall()を実行する(The internal ITelephony.aid…

【小ネタ】取得したファイルをURIをRetrofitで送信する

表題まま。取得したファイルをURIをRetrofitで送信したときの備忘録。 そのままだとうまくいかないので、RetrofitをRequestBodyを継承して、 writeTo()時にファイル読み込むようにするといいっぽい private fun createRequestBody(uri: Uri, context: Contex…

AndroidでRetrofit2をつかってみた

AndroidでAPIクライアントライブラリのRetrofit2を使ってみたときの備忘録。 build.gradle // Retrofit compile 'com.squareup.retrofit2:retrofit:2.3.0' // OkHttpのログを見たいとき compile 'com.squareup.okhttp3:logging-interceptor:3.4.1' // Adapte…

KotlinでDataBindingをはじめるときの簡単なメモ

ひさびさにKotlinしたらDataBindingで悩んだので、その時の備忘録。 Gradle 要点のみ。kaptを使う。 apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' // F…

Androidで画面表示時にフォーカスしたくない

画面表示時、初期状態ではキーボードを表示してほしくないときのあれ。 フォーカスせずにキーボードが表示されないようにする <EditText/> <TextView android:focusable="true" android:focusableInTouchMode="true"> <requestFocus /> </TextView> 逆に、フォーカスする <EditText> <requestFocus /> </EditText> <TextView/> 参考にしたサイト様 【Android】画面起…</textview/></edittext/>

AndroidのFAB(Floating Action Button)の色/サイズを変えたい

AndroidでFABのサイズを変えたかったので、いろいろ調べたときの備忘録 もとのサイズを変更しているので、正攻法じゃない感が半端ない&全体に適用されるけど。。 色を変える(Layout XMLのbackgroundTint) 色を変える場合は、backgroundTintすればOK

Android x Toolbar x SearchView|常に検索バーを表示していたい

Toolbarに検索バーを表示させたいなぁと思い、いろいろ調べたときの備忘録 ActionViewを使うサンプルはよくあるけど、タイトルの代わりに表示する例って少ない。。。 虫眼鏡アイコンを表示して、必要に応じて検索バーを表示する よくあるサンプル。 検索ボタ…

【Android】Tablayoutでタブの幅を広げたり、タブの文字サイズを変えたい

小ネタ。Tablayoutは便利。 タブレットでもタブの幅を広げる Material Design的には、タブレットでタブが2個のときは、 タブのサイズを小さくするらしい。。 <android.support.design.widget.TabLayout android:layout_width="match_parent" android:layout_height="wrap_content" app:tabMaxWidth="0dp" app:tabGravity="fill" app:tabMode="fixed" /> app:tabMaxWidth="0dp"が重要らしい タブの…</android.support.design.widget.tablayout>

【Android】 特定のViewのスクリーンショットを共有する

SNSなどへのシェア機能などで、画面のスクリーンショットを共有したかった。 Viewごとでキャプチャできるようなので、その時の備忘録φ(..)メモメモ View view = ...; // スクリーンショットを取りたいView // Viewのスクリーンショットを取得 File file = ne…

【Android】外部URLから画像を直接共有する

Picassoで読み込んでキャッシュをShareCompatで共有するのがよさそう public void shareImage(String url, final AppCompatActivity activity) { Picasso.get().load(url).into(new Target() { @Override public void onBitmapLoaded(Bitmap bitmap, Picasso…

【Android】targetSDK27でwindowIsTranslucent=trueを使うとAndroid8.0でCrashする

タイトル通り。。かなり、はまったので、備忘録φ(..) targetSDK=27で<item name="android:windowIsTranslucent">true</item>を使うと、Android8.0でCrashする Androidのバグらしい。targetSDKを26に下げると問題なく動作する Android8.1では修正されているらしい まさか、SDK側の問題とは。。いろいろ変えても…

古いAndroidOSでもVectorDrawableを使いたい

VectorDrawable便利。ただ、Android4.4など古いSDKでは、注意が必要。。 基本は、Support Libraryをインポートして、AppCompatActivityとかapp:srcCompatを使うOK ただ、Drawableを取得する際には、ContextCompatを使うだけではだめだった。。 ポイントは2つ…

Androidのエミュレータでネットワークを使えるようにする

エミュレータを動かしているPCにGoogleのDNSを登録する必要があるらしい。 GoogleのDSNは、以下の2つ 8.8.8.8 8.8.4.4 参考にしたサイト様 Android Studio エミュレータのネットワーク設定

Androidで電話の発信・切断・状態の確認

Androidで電話を操作するアプリを作る機会があったので、その時の備忘録。 発信する 発信する場合は簡単。Intentを発行するだけでOK。 Context context = ...; String phoneNumber = "090-0000-9999" Uri uri = Uri.parse("tel:" + phoneNumber); Intent int…

Androidで常駐サービスを作ろう(Service/WakefulBroadcastReceiver/Doze/AlarmManager)

Androidで常駐起動するサービスを作ることがあったので、そのときの備忘録。 作るときのポイントを整理してみた。が、いろいろ考えることが多い。。。 ポイント WakefulBroadcastReceiverを使ってServiceを起動する スリープしてもWifiの接続を維持しておく …

Activity破棄問題をサポートしてくれるIcepickとparceler

破棄されやすいAndroidのActivity/Fragmentたち。ライブラリを使うと簡単に状態を保存/復元できるので、その備忘録。 Icepick … 状態の保存/復元をサポートするアノテーションライブラリ parceler … Objectをシリアライズするアノテーションライブラリ depen…

Androidでネットワークの状態を確認/判定する

ネットワーク確認 ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); // 接続状態状況の判定 boolean isConnected = activeNetwork != null…

Androidでファイル選択してSDカードとかにコピーする

Androidで、選択したファイルをコピーしたいなぁと思ったので、調べたときの備忘録。 大まかな手順は以下な感じ。 ファイルを選択する コピー先のパスを取得する UriからFileへコピーする 1. ファイルを選択する private final static int CHOSE_FILE_CODE =…

正方形のImageViewをカスタムViewで(Support Library版)

AndroidでRecyclerViewを使って、Gallery的な画面を作りたいなぁと思ったときの備忘録。 ほぼ、うさがにさんの記事の引用。Support LibraryのAppCompat版。 こんな感じ public class SquareImageView extends android.support.v7.widget.AppCompatImageView …

Androidでカレンダーを表示するライブラリ(CompactCalendarView)

Androidでカレンダーアプリを作る際に利用したCompactCalendarViewの備忘録。 いろいろ調べたけど、シンプルで使いやすいライブラリ。 使い方 色やサイズなどは、XMLで設定する感じ <com.github.sundeepk.compactcalendarview.CompactCalendarView android:id="@+id/calendar" android:layout_width="match_parent" android:layout_height="match_parent" <!-- 全体の設定:背景色、文字の色、文字のサイズ --> app:com…</com.github.sundeepk.compactcalendarview.compactcalendarview>