くらげになりたい。

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

Android

【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>

Androidで画面サイズを取得する方法

画面サイズを取得する方法を調べたので、その備忘録。 というか、a_nishimuraさんの記事の引用 Display display = activity.getWindowManager().getDefaultDisplay(); Point point = new Point(); display.getSize(point); displayWidth = point.x; 以上!!…

【Android】コンテンツ プロバイダ(ContactsProvider)を使って連絡先から誕生日と名前を取得する

Androidの開発をしていて、連絡先から誕生日を取得して、ごにょごにょする必要があったので、その際の備忘録。 コンテンツプロバイダ関連って余り情報がないので、こまった。。 連絡先を扱うには、パーミッションが必要です 今回は読み込みだけなので、以下…

AndroidのActivityを透過させて表示させるスタイル

画像を拡大表示するときに背景を透明にしたいなと思ったので、調べたときの備忘録 ほぼ、Nyanさんの記事の通り! styles.xmlに半透明になるスタイルを追加して、AndroidManifest.xmlでactivityに設定するだけ まずは、styles.xmlに以下のスタイルを追加する。…

AndroidとDagger2でDIしてみる

前々から気になっていたDIライブラリのDaggerを使ってみたので、その備忘録。 登場人物はこんな感じ DIといえば、Springな人なので、イメージを掴むのが一苦労だった。。 @Inject ・・・依存性を注入(Inject)したいオブジェクトへのアノテーション @Provide …

AndroidでMaterial Designボタンに変更するスタイル

Androidアプリを作っていて、マテリアルデザインのボタンにしたいなと思い、色々調べた備忘録。 Raised Button styles.xmlにスタイルを用意する 用意するスタイルはこんな感じ。 <style name="AppTheme.RaisedButton" parent="Theme.AppCompat.Light"> <item name="colorControlHighlight">#FFD464</item> <item name="colorButtonNormal">#FBA848</item> <item name="android:textColor">#FFFF…</item>

AndroidStudioで開発をはじめるときにすること~パッケージ構成&共通クラス編~

いろいろやっているとAndroidアプリを開発しはじめるときにいつもやることを忘れるので、その備忘録。その2 環境 Android Studio: 2.3.3 Gradle: 3.3 Android Plugin for Gradle: 2.3.3 Java8 パッケージ構成はこんな感じ <root_package>/ ├── activity ... Activity │ └──</root_package>…

AndroidStudioで開発をはじめるときにすること~build.gradle編~

いろいろやっているとAndroidアプリを開発しはじめるときにいつもやることを忘れるので、その備忘録。 環境 Android Studio: 2.3.3 Gradle: 3.3 Android Plugin for Gradle: 2.3.3 Java8 使うライブラリ Gradle Retrolambda Plugin ... AndroidでJava8のラム…

Androidでマテリアルデザインっぽく影をつける

前に作ったアプリの機能追加と合わせて、カードに影をつけたいなぁと思ったときの備忘録。 play.google.com こんな感じになりました 作り方はこんな感じ 影付きの枠のdrowable(drowable/frame.xml)を作成して、 <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:left="3dp" android:top="4dp"> </item></layer-list>