Tag Android

Android: スクリーンショットの撮り方

日常では iOS デバイスをメインで使っているので、Android の基本操作はよくわかりません。 そんな Android も開発時にはお世話になるため、Android ユーザーであれば当たり前のような操作も、当たり前に出来なかったりします。 今回はそんな当たり前の Android デバイスでスクリーンショットを撮る方法のメモとなります。 Android: スクリーンショットの撮り方 デバイスの 「ボリューム(小)」+「電源ボタン」を 同時に長押し でスクリーンショットの撮影ができます。 まとめ Apple の iPhone や iPad と違って、Android デバイスは、単独1社が製造しているものではないので、デバイス自体に性能の違いや、製造メーカーごとの細かな仕様・特徴があるため、デバイスの使用感にバラつきがあります。 スクリーンショットの撮影自体は、Android OS の仕様にそった操作方法なので、ここで説明した操作方法しか達成手段はありませんが、今回スクリーンショット撮影を様々な Android デバイスで検証した際、ボタンの位置、押す感覚、長押しのタイミングや時間には、多少バラつきがあるように感じました。 秀逸なユーザビリティ・ユーザーエクスペリエンスは、小さな要素が絶妙に絡み合うことで実現していることをあらためて実感しました。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Android: USB 接続なし (無線LAN) でアプリを実機デバッグする方法

Wifi 環境があれば Android Studio からの実機でのデバッグが USB 接続なしで可能です。 とは言え、最初の設定では結局 USB 接続が必要ですが、デバイスがケーブルから解放されることで、多少は作業ストレスの軽減になるかもしれません。 地味に便利な機能だったのでメモしておきます。 目次 ADB コマンドのパスを通す USB 接続を行う ADB コマンドで接続する USB 接続を解除しビルドを実行する ADB コマンドのパスを通す ターミナルシェルの環境設定(.bashrc や.zshrc等)に ADB コマンドへのパスを通します。 設定を保存した後、設定ファイルをリロードしシェルに設定を反映させます。 ADB コマンドが使えるようになっているか確認します。 無事バージョンが表示されれば完了です。 USB 接続を行う Mac と Android デバイスを USB で接続し Android Studio を起動します。 Android デバイスの 設定 -> Wi-Fi -> 詳細設定 (Android デバイスごとにメニューの名称は異なります)から IP アドレスを確認します。ここでは 10.0.1.1 とします。 ここで表示された IP アドレスを使用し、ADB コマンドで接続を行います。 ADB コマンドで接続する ターミナル(Android Studio 内のターミナルでも可)を起動し、以下のコマンドを実行します。 先ほど調べた IP アドレスに上記のポートを指定し接続します。 接続されているデバイスを確認します。 デバイスが接続されていることが確認できました。 USB 接続を解除しビルドを実行する すでに Wi-Fi で接続されていますので、USB ケーブルを外します。 Android Studio からビルドを実行すれば、USB 接続なしでデバッグが可能になっています。 以上で作業は完了です。お疲れ様でした。 まとめ Android Studio では Xcode に存在しないユニークな機能をちょくちょく見かけます。 Xcode でもこういった無線環境でのビルド・デバッグの機能を追加してくれると、つらいコーディングも少し楽しくなるかもしれませんね。 今回紹介した方法は、準備自体は数分で完了するので、是非一度お試しください。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Android: WebView での YouTube 再生について(フルスクリーン対応)

Android の WebView は仕様をよく理解していないと、ネイティブ実装よりも大変なケースに遭遇します(しました)。 WebView から Web ページが表示されて一息ついていたら、YouTube が見れないという問題が発生しましたので、その解決方法をメモしておきます。 老婆心ながら、くれぐれもアプリのユーザーエージェントを、あまりにもユニークなものに書き換えたりしないでください。 ユーザーエージェントが大きく変わると、今回の方法でどう頑張っても YouTube は再生できません。これで人生の貴重な3日間を棒に振りました。。。 それではどうぞ。 目次 AndroidManifest の設定 MainActivity -> WebView の設定 MainActivity -> WebChromeClient 拡張クラス MainActivity の全コード レイアウトファイル AndroidManifest の設定 application の android:hardwareAccelerated を true にします。 AndroidManifest.xml MainActivity -> WebView の設定 WebView の設定を以下のようにし、WebChromeClient の拡張クラス(後述)をセットします。 MainActivity.java -> protected void onCreate MainActivity -> WebChromeClient 拡張クラス WebChromeClient の拡張クラスが必要な理由は YouTube のフルスクリーン表示に対応するためです。 フルスクリーン表示になったとき、 WebVeiw を非表示にしカスタムビューと背景(黒)を表示、フルスクリーンが解除された時に WebVeiw を表示し、カスタムビューと背景(黒)を非表示にする、といった処理を書く必要があります。 WebChromeClient の拡張クラスでオーバーライドするメソッドは次の2つです。 public void onShowCustomView public void onHideCustomView WebChromeClient の拡張クラス CustomWebChromeClient は以下のようになります。 MainActivity.java MainActivity の全コード 完成した MainActivity は以下となります。 MainActivity.java レイアウトファイル おまけに layout ファイルも載せておきます。 activity_main.xml まとめ Android も YouTube も同じ Google なのに、なぜここまでやらなければ WebView から YouTube が再生できないんでしょうか。 今回のソースコードは Android 4.0 以降をターゲットに YouTube の再生に特化したソースコードですが、ここに WebViewClient、ジェスチャー、Android OS の後方互換を考慮した場合、相当カオスなソースコードになります。 Android の WebView の取り扱いにはくれぐれもご注意を。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Android: ImageView をアニメーションさせる(Property Animation)

Android アプリを開発時にアニメーションが必要になったので、そのときのメモ。 今回は Android3.X 系 以降で使用できる Property Animation のサンプルコードを掲載しました。 ImageView をアニメーションさせる(Property Animation) target に対象の ImageView、duration にアニメーション時間(ミリ秒)、from(変更前の値)、to(変更後の値)を渡します。 透過アニメーション 移動アニメーション 回転アニメーション まとめ Android のアニメーションはいくつか種類があるみたいですが、互換性や汎用性を考慮すれば、オブジェクトそのもののプロパティが変更できる property animation が使いやすいみたいです。 今後は iOS だけではなく Android の記事も追加していきたいと思います。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Android: WebView 画面回転(Portrait / Landscape)に対応する

Android Studio で WebView を表示し、画面の回転に対応させた場合、何もしない状態のままではアプリが落ちる、もしくは WebView がリロードされてしまいます。 Android アプリの場合、画面が回転した際に一旦 Activity が破棄されてしまい、Activity のメンバ変数や onCreate で生成したインスタンス等が再度生成されてしまうため、このような問題が発生します。 今回はこの問題を解決する、以前の WebView の画面を保持したまま画面を回転させる方法 を説明したいと思います。 目次 AndroidManifest.xml MainActivity.java WebView を画面回転(Portrait / Landscape)に対応する AndroidManifest.xml マニフェストの activity に configChanges… の1行を加えます。 MainActivity.java アクティビティに onSaveInstanceState と onRestoreInstanceState メソッドを追加し、onCreate で WebView を生成、savedInstanceState に以前の状態が保存されていれば、WebView を復元する条件を追加します。 以上で、MainActivity が破棄されるタイミングで onSaveInstanceState がコールされ、WebView の状態が保存されます。 MainActivity のコードは以下のようになります。 Android Studio のエミュレータ上で、デバイスを回転させて結果を確認したい場合は こちら を参考にしてください。 まとめ 今回説明した内容は Activity が破棄されたタイミングで、ビューの状態を保存しているので、ここら辺の Android 特有の仕組みをしっかりと理解していれば、色々と応用がききそうです。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Android: Android Studio のエミュレータを Landscape にする

このサイトでは見慣れない投稿記事のアイコンが登場しました(笑) 最近 Android アプリにも手を出し始めたので、これからちょくちょくメモを公開したいと思います。 今回は Android Studio のエミュレータで、デバイスを回転させるショートカット のメモです。 Android Studio のエミュレータを Landscape にする Android Studio でプロジェクト開き、ビルドしたアプリをエミュレータに表示します。 control + fn + F11 でデバイスの向きが変わります。 まとめ Android Studio でコーディングしていると Xcode の良いところ、悪いところがよくわかります。 Xcode でトラブルに遭遇した場合、自身の知識や経験不足からくる問題なのか、Xcode 側の問題なのかの特定に、余計なコストを割いてしまいますが、Android Studio ではそう言ったケースが少ないように感じます。Windows で作業をしているときのような信頼・安心感がありますね。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。