Android開発についてのメモ

Androidアプリを開発したときの備忘録です。

新しいアプリをリリース! ブルーライトから守る

本日、開発していたアプリをリリースしました。

 

ブルーライトから守る」というアプリで、スマホから発生するブルーライトを軽減して目を守るアプリです。

よかったら使ってみて下さい。

play.google.com

 

このアプリを作ることで、色々な技術を身に着けることができました。

例えば、

 ・ショートカットの作成方法、ホーム画面からショートカットを作成する方法

 ・アプリ内課金の細かい制御

 ・アニメーション(少しずつプロパティの値を変更していく)方法

 ・通知にボタンをつける方法

 ・マテリアルデザインのテーマの使い方

などです。

 

これらの技術を応用して、また新しいアプリを作りたいと思います!

時間ができたら忘れないうちにブログにまとめます。

 

 

 

 

 

 

Raised Button の作り方(持ち上げ型ボタン)

現在は新しいアプリを開発中です。

そこでマテリアルデザインのボタンを使いたいと思い、どのように実装すればいいのか調べて分かったので書きます。

 

方法としては、テーマにマテリアルデザインのものを指定してあげるとできるみたいです。

実際に実装した例を載せます。

 今回は2種類のボタンを作成しました。

 1つ目がオレンジ色のボタン
 2つ目が白色のボタン

です。

 

【実装方法】

①styles.xmlにボタン用のスタイルを作成します。

ここではAccentButtonStyleとNegativeButtonStyleの2種類です。

parentにマテリアルデザインの「Theme.AppCompat」か「Theme.AppCompat.Light」を指定します。

違いは、文字を黒ベースか白ベースにするかになります。

また、以下のitemに好きな色を指定します。

  • colorButtonNormal :ボタンの背景色
  • colorControlHightlight :プレスしている時の色

 

styles.xmlの一部

<style name="AccentButtonStyle" parent="Theme.AppCompat">
<!--ボタンの色-->
<item name="colorButtonNormal">#FF9100</item>
<!--ボタンをプレスしている時、シークバーをプレスしている時の色-->
<item name="colorControlHighlight">#FF6D00</item>
</style>

<style name="NegativeButtonStyle" parent="Theme.AppCompat.Light">
<!--ボタンの色-->
<item name="colorButtonNormal">#FAFAFA</item>
<!--ボタンをプレスしている時、シークバーをプレスしている時の色-->
<item name="colorControlHighlight">#FFAB40</item>
</style>

 

②ボタンにテーマを指定します。

先ほど作成したテーマをマテリアルデザインを適用したいボタンに指定します。

 android:theme="@style/AccentButtonStyle"

例は載せていませんが白色のボタンの場合は以下のテーマを指定します。

 android:theme="@style/NegativeButtonStyle"

  

activity.xmlの一部

<Button
android:id="@+id/btnSavePattern"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/button_horizontal_padding"
android:paddingRight="@dimen/button_horizontal_padding"
android:text="保 存"
android:theme="@style/AccentButtonStyle"
/>

 

以下が実装したイメージとなります。 

・通常時

f:id:TeamDaigo:20160218001920p:plain

・ボタンをプレス時

f:id:TeamDaigo:20160218001929p:plain

・ボタンが非活性の時

f:id:TeamDaigo:20160218001938p:plain

 ・白色のボタンとオレンジ色のボタン

f:id:TeamDaigo:20160218001949p:plain

 

全体のアプリのテーマに「colorButtonNormal」を指定してもボタンは変更できますが、すべてのボタンが同じ色になってしまうため、一つ一つのボタンにテーマを指定しています。

Theme.AppCompatを使っていますので、Android5.0より前のバージョンでもマテリアルデザインが適用されます。

 

以上になります。

 

よかったら試してみて下さい。

 

 

 

Gitのリモートリポジトリからプロジェクトを作成する手順【AndroidStudio】

もし、プロジェクトのフォルダが消えてしまった場合、リモートリポジトリからプロジェクトを復活させる手順をメモしておきます。

(プロジェクトフォルダは1時間おきにバックアップを取っているため、この手順を使うことはないと思うのですが。)

 

VCS > Checkout from Version Control > Git」を選択する。

f:id:TeamDaigo:20151229032753p:plain

 

以下の設定を行ってCloneボタンを押下する。

 「Git Repository URL」にリモートリポジトリのパスを指定する。

 「Parent Directory」にプロジェクトを作成するフォルダの親フォルダを指定する。

 「Directory Name」にプロジェクトのフォルダ名を指定します。

f:id:TeamDaigo:20151229032856p:plain

 

Yesボタンを押下して、完了です!

f:id:TeamDaigo:20151229033151p:plain

 

Gitで以前のバージョンに戻す方法【AndroidStudio】

以前のバージョンに戻したい時の手順をメモをしておきます。

 

◆リモートリポジトリにpushしていない場合

「2回目チェックイン」をしたが、まだリモートにpushしていない状態で、「初回チェックイン」に戻したい場合。(HEADは2回目で、origin/masterは初回のまま)

 

f:id:TeamDaigo:20151229021810p:plain

 

この場合は簡単です。

戻したいバージョンを右クリックし「Reset Current Branch to Here...」を選択する。

f:id:TeamDaigo:20151229021841p:plain

「Hard」を選択して、Resetを押下する。

f:id:TeamDaigo:20151229022019p:plain

すると戻すことができます。

※2回目チェックインの履歴はなくなってしまいます。

f:id:TeamDaigo:20151229022104p:plain

 

◆リモートリポジトリにpushしてある場合

「2回目チェックイン」をして、リモートにpushした状態で、「初回チェックイン」に戻したい場合。(HEAD、origin/master共に2回目の状態)

f:id:TeamDaigo:20151229022229p:plain

 

先ほどと同様にResetするとHEADが「初回チェックイン」に移ります。

f:id:TeamDaigo:20151229022448p:plain

そこで修正して3回目チェックインをします。

(修正しないとチェックインができなかったので。)

f:id:TeamDaigo:20151229022543p:plain

この「3回目チェックイン」をpushしてマージすれば、リモートリポジトリにも反映させることができると思います。

 

 

思いますというのも、マージをキャンセルしたら以下のような状態になってしまったからです。

f:id:TeamDaigo:20151229022857p:plain

この状態になるとpushができなくなってしまいました。

色々いじってみたらできましたので、その方法も書きます。

 

まず、赤枠の部分をクリックします。

「origin/master > Merge」を選択します。

f:id:TeamDaigo:20151229023203p:plain

マージすると以下のようにマージしたバージョンが作成されます。

f:id:TeamDaigo:20151229023440p:plain

マージしてできたバージョンはpushすることができました!

f:id:TeamDaigo:20151229023500p:plain

 

以上、以前のバージョンに戻す方法でした。

 

AndroidStudioでのバージョン管理【Gitを使用】

新しいアプリを作ろうとしたら、久しぶりにプロジェクトの作成だったため、バージョン管理の初期設定のやり方を忘れてしまいました。

そこでGitでのバージョン管理の初期設定を今後のために残したいと思います。

(Gitでのバージョン管理は慣れていないので手探りで作業している状態で正しいのか分からないが。。。)

 

◆初期設定の主な流れ

 ①AndroidStudioのプロジェクト作成

 ②Gitでのバージョン管理の登録(ローカルリポジトリの作成)

 ③Gitのリモートリポジトリ用のフォルダを作成

 ④リモートリポジトリに登録(pushする)

 

①プロジェクトの作成

f:id:TeamDaigo:20151228220532p:plain

f:id:TeamDaigo:20151228220639p:plain

Gitでのバージョン管理の登録(ローカルリポジトリの作成)

VCS > Enable Version Control Integration...」を選択する。

f:id:TeamDaigo:20151228220617p:plain

「Git」を選択して、OKを押下する。

f:id:TeamDaigo:20151228220826p:plain

「Unversioned Files」を「Default」にドラッグする。(バージョン管理の対象とする。)

f:id:TeamDaigo:20151228221019p:plain

VCS」を押下する。f:id:TeamDaigo:20151228221120p:plain

コメントを入れて、Commitを押下する。

f:id:TeamDaigo:20151228221210p:plain

コミット完了!

f:id:TeamDaigo:20151228221309p:plain

 

③Gitのリモートリポジトリ用のフォルダを作成

フォルダを作成して、右クリックで「Git ここにリポジトリを作成」を選択する。

作成するフォルダは「xxx.git」のように名前の最後に「.git」を付けた方がいいみたいです。

(このフォルダはバックアップされるようにOneDriveのディレクトリに作成しています。)

f:id:TeamDaigo:20151228221558p:plain

f:id:TeamDaigo:20151228221609p:plain

④リモートリポジトリに登録(pushする)

VCS > Git > Push...」を選択する。

f:id:TeamDaigo:20151228221641p:plain

「Define remote」を選択して、リモートリポジトリのパスを指定する。

f:id:TeamDaigo:20151228222133p:plain

f:id:TeamDaigo:20151228222155p:plain

Pushして完了!!

f:id:TeamDaigo:20151228222214p:plain

f:id:TeamDaigo:20151228222224p:plain

 

以上で初期設定は完了です!

 

 

Gitでバージョン管理するには、別途GitをWindowsにインストールしないといけません。

またリモートリポジトリを作成するのに「TortoiseGIT」というソフトをインストールしています。

使い方はいつか書きたいと思います。

 

デバッグ時に不明なエラーが発生

本日、久々にAndroidStudioを起動して、デバッグしようとしたら、意味不明なエラーが発生して、デバッグができず困りました。

一応、解決したのでメモします。(解決と言っていいのか分かりませんが。)

 

◆エラー内容

f:id:TeamDaigo:20151123032016p:plain

Cannot reload AVD list: cvc-enumeration-valid: Value '360dpi' is not facet-valid with respect to enumeration '[ldpi, mdpi, tvdpi, hdpi, 280dpi, xhdpi, 400dpi, xxhdpi, 560dpi, xxxhdpi]'. It must be a value from the enumeration.

Error parsing C:\Users\*****\AppData\Local\Android\sdk\system-images\android-23\android-wear\armeabi-v7a\devices.xml

・・・

 

英語なのでよく分かりませんが、意味としては、「AndroidAPI23(Android6.0)のエミュレーターAndroid-Wearで”360dpi”が読み取れない」ということだと思います。

最初は何かのAPIが最新の状態になっていないのかと思い、Android SDK Managerを使ってすべてを最新化したのですが、エラーは直らず。。。。

色々と試行錯誤してたどり着いたのがAndroid Wearのエミュレーターを削除するというのでした。

f:id:TeamDaigo:20151123033456p:plain

 

削除したら問題なくデバッグができるようになりました!

私はAndroid Wearのエミュレーターは使っていないので、特に削除しても問題はありませんが、使っている人はどうしたらいいのでしょうか。

エミュレーターのバグなのでしょうか。

 

とりあえず使えるようになって、よかったです。

 

自己紹介

趣味でAndroidアプリを開発しています。

開発時につまづいたところについて、調べて分かったことをメモとして、ブログに残したいと思います。

自分用の備忘録として使うのと、同じくAndroid開発で困っている人の役に立てれば幸いです。

 

◆開発したアプリ

開発したアプリはFacebookで紹介しています。

https://www.facebook.com/Team.Daigo

 ・ぶるぶるタイマー(省エネ版)

 ・画面オフ in ポケット

 ・ブルーライトから守る