nomadikのブックマーク (397)

  • [Android] TranslateAnimation 移動アニメーション

    Viewにアニメーションを施したいときはこのAnimationが簡単です。ただし途中で止めるなど込み入ったことはできません。Property Animation 等を使いましょう。 設定方法は2通りあります。 XML attributes res以下にanimというフォルダーを作成してxmlファイルを置きます。 animationの属性設定は<translate />タグを使って以下のように設定します。 fromXDelta:開始時のx位置 toXDelta:終了時のx位置 fromYDelta:開始時のy位置 toYDelta:終了時のy位置 fillAfter:アニメーション終了時にそのままにする(true) duration:アニメーション期間[msec] 移動アニメーションの開始位置と終了位置設定は3通りあります。 Animation.ABSOLUTE:240 のようなpixel絶

    [Android] TranslateAnimation 移動アニメーション
    nomadik
    nomadik 2018/05/29
    Translate Animation
  • [Android] ScaleAnimation 拡大・縮小アニメーション

    Viewにアニメーションを施したいときはこのAnimationが簡単です。ただし途中で止めるなど込み入ったことはできません。Property Animation 等を使いましょう。 設定方法は2通りあります。 XML attributes res以下にanimというフォルダーを作成してxmlファイルを置きます。 animationの属性設定は<scale />タグを使って以下のように設定します。 fromXScale:開始時のxスケールサイズ(1.0で表示画像のまま) toXScale:終了時のxスケールサイズ fromYScale:開始時のyスケールサイズ(1.0で表示画像のまま) toYScale:終了時のyスケールサイズ pivotX:スケール時のx座標(50%がview中央値) pivotY:スケール時のy座標(50%がview中央値) fillAfter:アニメーション終了時にそ

    [Android] ScaleAnimation 拡大・縮小アニメーション
    nomadik
    nomadik 2018/05/29
    Animation
  • [Android] RotateAnimation 回転アニメーション

    Viewにアニメーションを施したいときはこのAnimationが簡単です。ただし途中で止めるなど込み入ったことはできないので、その場合は Property Animation 等を使いましょう。 設定方法は2通りあります。 XML attributes animationの属性設定は<rotate />タグを使って以下のように設定します。 interpolator:補間処理を行う repeatCounter:繰り返し回数 fromDegrees:回転の開始角度[°] toDegrees:回転の終了角度[°] pivotX:回転軸のx座標 pivotY:回転軸のy座標 fillAfter:アニメーション終了時にviewをそのまま残す(true) duration:アニメーションの期間[msec] animフォルダーを作成してxmlファイルをres¥anim¥以下に配置します。 rotatio

    [Android] RotateAnimation 回転アニメーション
    nomadik
    nomadik 2018/05/29
    RotateAnimation
  • [Android] AlphaAnimation フェードイン・フェードアウト

    alpha値を 1.0 -> 0.0 へアニメーションで変更させるのがAlphaAnimationですが、 画像1枚を使ってfade out/in を実現できるのでとても便利な機能です。 設定方法は2通りあります。 XML attributes res以下にanimというフォルダーを作成してxmlファイルを置きます。 今回はfedeinとfadeoutの2種類作りました。 animationの属性設定は<alpha />タグを使って以下のように設定します。 interpolator:補間処理を行う fromAlpha:アニメーション開始時のalpha値 toAlpha:アニメーション終了時のalpha値 fillAfter:アニメーション終了時にviewをそのまま残す(true) duration:アニメーションの期間[msec] res\anim\alpha_fadeout.xml <?

    [Android] AlphaAnimation フェードイン・フェードアウト
    nomadik
    nomadik 2018/05/29
    フェードイン・フェードアウト
  • [Android] MediaStore スマホの画像や音楽ファイルを検索する

    ContentProvider ContentProviderは外部アプリに対しテーブルに似たものとしてデータを提供するものです。 Ref: コンテンツ プロバイダの基 コンテンツ プロバイダ コンテンツ プロバイダにアクセスする一般的なパターンは、以下のようになります。 CursorLoader を使用してバックグラウンドで非同期クエリを実行 UI の Activity/Fragment は、クエリに対して CursorLoader を呼び出し ContentResolver を使用して ContentProvider からデータを取得 Ref: コンテンツ プロバイダの基 ContentResolver.query() を呼び出してデータ情報を取得。 ContentResolver contentResolver = getContentResolver(); Cursor cur

    [Android] MediaStore スマホの画像や音楽ファイルを検索する
    nomadik
    nomadik 2018/05/29
    Intent.ACTION_OPEN_DOCUMENT
  • [Android] inflate を使ってみる

    BaseAdapterやちょっと複雑なレイアウトしようとすると登場する inflater とは何者なのか? Inflater 「inflate」はランダムハウス英和大辞典 によれば社会人必須レベルとのことですが、どんな意味でしょう。 inflate: 拡張する,膨張させる [ラテン語inflātus(in-中に+flāre吹く+-tus過去分詞語尾=吹き込む). △DEFLATE] (ref. goo辞書) 語源からすると中に吹き込む、これが一番意味合いとして合っているように思います。 Inflaterの使い方 レイアウトXMLファイルからViewを作るには直接インスタンス化するのではなく、getLayoutInflater()またはgetSystemService(Class)を使うのです。 getLayoutnflater() について使い方を見てみます。 例えば activity_m

    [Android] inflate を使ってみる
    nomadik
    nomadik 2018/05/29
    Inflator
  • [Android] WebView でウェブアプリの作成

    WebViewにはdefaultではJavaScriptやback keyなど通常のブラウザとしての機能は何もついていません。 Googleは通常のブラウザを使いたいのであればChrome等を使った方がいいと言っています。 WebView | Android Developers ではどういったケースでの使用を目的としているのでしょうか、例えば、アプリの一部として使うということです。アプリの静的なヘルプ画面をHTML で作成することなどが考えられます。 WebViewの設定: 基的な使い方は、loadUrlにURLを指定してWebViewを開きます。 // レイアウトファイル web.xml を使ったケース setContentView(R.layout.web); WebView webView = findViewById(R.id.web_view); webView.loadUr

    [Android] WebView でウェブアプリの作成
    nomadik
    nomadik 2018/05/29
    Webブラウザ
  • [Android] 音声認識 RecognizerIntent

    RecognizerIntent.ACTION_RECOGNIZE_SPEECH 言語認識は、サーバーに飛ばして結果を受取ります。基的にはネットに接続していないと使えませんが、言語認識のパッケージが端末にインストールされているのであればオフラインでも可能です。 Intent を使って Activity を遷移し、遷移先から結果を受け取るという仕組みです。 Actvity 画面遷移とデータ受け渡しが参考になります サンプルコード 結果は registerForActivityResult() で受け取りますが、いくつもの候補リストで返ってきます。ここでは順位1位のものを表示させています。 MainActivity.java //package your.package.name; import android.os.Bundle; import android.app.Activity;

    [Android] 音声認識 RecognizerIntent
    nomadik
    nomadik 2018/05/29
    音声認識
  • [Android] Storage Access Framework でドキュメントを保存する

    共有メモリにファイルを保存するためにSAF(Storage Access Framework)を利用します。ファイル保存に使うのは ACTION_CREATE_DOCUMENTです。取り出したい場合は ACTION_OPEN_DOCUMENT を使います。 SAF, Storage Access Framework SAFを使うことによりコンテンツを容易に参照できるようになりました。 ドキュメント ストレージ プロバイダ全体から簡単にドキュメント、画像、その他のファイルを参照して開くことができる 標準の Picker UI により、アプリやプロバイダを通じて一貫性のある方法でファイルにアクセスできる 図 2. ストレージ アクセス フレームワークのフロー Ref:ストレージ アクセス フレームワーク

    [Android] Storage Access Framework でドキュメントを保存する
    nomadik
    nomadik 2018/05/29
    SAF
  • [Android] Gyroscope ジャイロセンサー

    スマホのスピンやターンを検知するセンサーとしてGyroscopeがあります。 gyro driftを補正した TYPE_GYROSCOPE と gyro drift補正の無いTYPE_GYROSCOPE_UNCALIBRATED があります。 Gyroscopeの座標系は加速度センサーと同じです。端末x, y, z軸の反時計方向での回転速度、角速度を計測します。単位は[rad/s] Gyroscopeには2タイプあります TYPE_GYROSCOPE TYPE_GYROSCOPE_UNCALIBRATED TYPE_GYROSCOPE_UNCALIBRATED はジャイロドリフトの補正がないセンサー出力です。ジャイロドリフトの補正がないと放置しておくとバイアスがかかったように徐々にずれていきます。 ただキャリブレーションによる値のジャンプがより滑らかで、この他のセンサー値との合算を考えるケ

    [Android] Gyroscope ジャイロセンサー
    nomadik
    nomadik 2018/05/29
    ジャイロセンサ
  • [Android] Accelerometer 加速度センサーをグラフにしてみた

    チャートはMPAndroidChartを使うことにしました。いろいろありますが、Androidの仕様変更に対応が比較的早いので(今の所ですが)。 チャートはLinerChartを使いました。こちら MPAndroidChart ライブラリーでグラフを描画 でも試しています。 また、SensorEvent | Android Developersにあるlow-pass filterも試してみます。 low-pass filter GoogleのSensorEventには次のような式が載せてあります。 加速度センサーの生データは敏感に反応するため、急激な変動をある程度除去して、ゆっくりした動きを取り出す、つまりlow-passのフィルタリングをした方が人間にはわかりやすい場合があります。またある程度というのが味噌で、この場合alphaという定数によって変化が変わって来ます。 public vo

    [Android] Accelerometer 加速度センサーをグラフにしてみた
    nomadik
    nomadik 2018/05/29
    加速度センサ
  • [Android] 加速度センサーで球ころがし

    Accelerometer 前回は加速度センサーの値を取得する方法でしたが、それを応用した球ころがしをスマホを傾けることによりやって見たいと思います。 コードはAndroid Studioから取り出せるSampleの中の「Accelemrometer Play」からボールが転がる箇所を切り出して簡単にしたものです。 MainActivity.java //package your.package.name; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; impor

    [Android] 加速度センサーで球ころがし
    nomadik
    nomadik 2018/05/29
  • [Android] 加速度センサー Accelerometer を使ってみる

    加速度センサーは端末のx, y, z軸方向の加速度を計測します。単位[m/s²] 実際(?)にその動きをAndroid Studioのemulatorから加速度センサーの動きを見てみたいと思います。 Virtuial Sensors emulatorを立ち上げて右バーのmore「…」をクリックするとExtended controlsダイアログが表れます。 「Virtual sensors」を選択、右サイドに端末が現れ、その上にある「Device Pose」をセットして、画面のスマホをマウスでドラッグすると「Rotation」によって「Resulting values」にx,y,z方向のセンサー出力が表示されます。 加速度なので動かす速度の変化で値が変わるのが分かります。 こちらはGoogleのSensorで説明されているTest with the Android Emulatorの動画です

    [Android] 加速度センサー Accelerometer を使ってみる
    nomadik
    nomadik 2018/05/29
    加速度センサ
  • [Android] Sensor 一覧を取得する

    センサーに使われているデバイスも半導体メーカーによって特性が必ずしも同じではありません。特別なセンサーを使う場合は個別にチェックしないと想定した動きになりません。 センサーリスト センサーの一覧です。 TYPE_ACCELEROMETER 加速度センサー x軸、y軸、z軸の各々の加速度 TYPE_ACCELEROMETER_UNCALIBRATED 加速度センサー(生データ) TYPE_AMBIENT_TEMPERATURE 周囲温度センサー 端末周囲の温度 TYPE_DEVICE_PRIVATE_BASE TYPE_GAME_ROTATION_VECTOR 回転ベクトルセンサー(地磁気を除く) 回転ベクトルセンサーから地磁気を除外したもので方位が不要なゲームでの利用を想定している TYPE_GEOMAGNETIC_ROTATION_VECTOR 地磁気回転ベクトルセンサー 回転ベクトルセ

    [Android] Sensor 一覧を取得する
    nomadik
    nomadik 2018/05/29
    sensor list
  • [Android] Canvas Animation で円弧を動かす

    ButtonやImageViewをアニメーションさせるにはProperty Animationandroid.view.animationを使うと簡単ですが、込み入ったアニメーション(円弧のアニメとか)は難しいところがあります。 Aimationクラスを継承してCanvasで描画する方法はある程度複雑な動きもカスタムで作りだせます。 Simple な Animation 簡単なAnimationを継承したクラスを使ってみます。 Canvasにある矩形(画像)が落下するアニメーションを考えてみます。 矩形は (left, top, right, bottom)で位置決めしますので、このY軸に相当するtop, bottomの位置を変化させて、矩形が下に落ちていくアニメーションにすればいいわけです。 アニメーションを実現させるためにタイマーを使う方法もありますが、Animation class

    [Android] Canvas Animation で円弧を動かす
    nomadik
    nomadik 2018/05/29
    Canvas Animation
  • [Android] Canvas で画像とテキストを表示

    前のページで Canvas で描画した領域を消したり表示したりする場合にPorterDuff.Mode.CLEARを使いましたが、部分的に表示・非表示をしたい場合にはちょっと使いにくいかもしれません。 それぞれが重なっていると、重なった部分が黒抜きで消えたり色々面倒です。シンプルに全て再描画を使う方がいいかもしれません。 。 Canvasに画像とテキストを描画 この例では、TextViewでのテキストとCanvas上のテキストが混在します。またCanvas領域に画像を表示していますが、これもImageViewで表示することもできます。このようにCanvasを使った表現の幅を種々広げることができるのが分かります。

    [Android] Canvas で画像とテキストを表示
    nomadik
    nomadik 2018/05/29
    Canvas テキスト表示
  • [Android] Canvas クリアーして再描画

    Canvas で描画した領域を動的に非表示にしたり表示したりする場合には、canvas.drawColor(0, PorterDuff.Mode.CLEAR) を使います。また同時に、クリアした後で再描画しますがそれには invalidate() を使います。 Canvasの再描画 先の例でCanvasのViewをRelativeLayoutの中で使うことをやってみました。TextViewなどは表示、非表示ができますがCanvasの場合はどうでしょう。 Cavasの場合は一旦クリアーして、その後再描画が必要です。次に表示させる時にもまた再描画が必要です。 最初に簡単のためボタンで表示・非表示を実装してみたいと思います。その後でHandlerを使ってCanvasのViewをアニメーションさせてみます。 invalidate() 描画をクリアーするには、 canvas.drawColor(0,

    [Android] Canvas クリアーして再描画
    nomadik
    nomadik 2018/05/29
    invalidate
  • [Android] Custom Canvas をレイアウトに挿入する

    Canvas と Paint を使って描画した図形とButtonなどを同じレイアウトに入れたい。そんな時はRelativeLayout等のレイアウトとCanvasを重ねると可能です CustomとLayout Canvasで描画していて困るのは、テキストやボタンなどと一緒にスクリーン上に表示したいというリクエストです。タッチリスナーや色々と手を尽くせば可能ですがコードが煩雑になりメンテしにくくなります。 そんな時は、Canvasで作成した描画領域、ViewをあたかもTextViewなどのようにレイアウトに張り付けることで解決できます。

    [Android] Custom Canvas をレイアウトに挿入する
    nomadik
    nomadik 2018/05/29
    Custom Canvas
  • [Android] Canvas Paint で円や矩形を描画する

    図形を描画するために Canvas と Paint クラスがあります。Canvas は絵を描くカンバスです、円や矩形などの図形をこれで設定します。 さてCanvasとは何でしょうか?GoogleAndroidフレームワークとしてグラフィックスにおいては2つの方法を提供しています。 Drawables 画像などをViewを使って表示。静的で表示させるだけの用途であり、アニメーションでも決まりきった動きのものに適している パフォーマンスを必要とするようなゲームにはあまり向かない 代表的な例は、画像をresourceのdrawableにおいてImageViewを使って表示するような例。 Canvas onDrawメソッドを使ってCanvas上で描画。ゲームなどの動きがありグラフィックスのredrawが頻繁に起きる場合や、カスタマイズされたアニメーションに向いている Ref: Canvas an

    [Android] Canvas Paint で円や矩形を描画する
    nomadik
    nomadik 2018/05/29
    Canvas
  • [Android] dp, px, dpi, sp アプリ画面の解像度単位を包括・統一的に扱う

    Android ではスクリーン上の長さを、抽象的な単位「dp」「sp」で表します。実際アンドロイドの画面サイズ解像度はメーカーによってまちまちですから、アプリを開発する側からすると何か便利な方法はないかと考えてしまいます。 ピクセル密度 Androidは様々なスクリーンサイズ(インチ)で、更に異なる画素数(ピクセル)のものが販売されていて、その1つ1つに合わせたレイアウト・デザインを作り込むのは大変です。 例えばピクセルサイズの画像の貼り付けをしたい時に問題があります。 端末のピクセルの画面サイズに合わせて画像を拡大縮小させないといけない 端末によるピクセル密度が異なることもあるので、同じピクセルサイズの画面でも物理サイズが違う場合、見え方が違う そのために dp、sp という画面サイズ、インチ数を包括し統一的に扱うことを目的とした抽象的な単位をAndroidでは提供されているわけです。

    [Android] dp, px, dpi, sp アプリ画面の解像度単位を包括・統一的に扱う
    nomadik
    nomadik 2018/05/29
    アプリ画面の解像度