Android Fabricを使ったクラッシュ分析 テスト配布
今回は今買収されそうで話題なTwitter社のFabricを紹介したいと思います。
Fabricとは、開発者の方々がより良いアプリケーションをつくるために便利なモジュール形式のモバイルプラットフォームです。
FabricをAndroidに導入することで、Web上のサイトからクラッシュの分析やAndroid Studioから直接apkのテスト配布が行えます。
非常に便利なので、ぜひ使って見ましょう!
まずはアカウント登録
Fabric - Twitter's Mobile Development Platform
Fabricの公式ページに行き
Get Started with Fabric
のボタンを押します。
すると登録フォームが出てくるので、適当なユーザーネームとアドレス、パスワードを入力してメール認証ボタンを押し、メールが届くので記載されているurlを押し、登録を完了させてください。
Android Studioにプラグインを入れる
さて、アカウントが登録できたところで次にAndroid StudioにFabricのプラグインを入れましょう。
メニューからAndroid Studio
を選択し、表示されたプルダウンメニューの中にあるPreferences
をクリックします。
するとPreference
のダイアログが表示されるので、そのサイドバーにあるPlugin
をクリックし、下の中央にあるBrowse repositories
というボタンを押します。
そして表示されたダイアログの検索欄でFabric
と入力するとFabric for Android Studio
と出てくるのでインストールをし、Android Studioを再起動しましょう。
再起動して、メニューバーにこのようなFabricのアイコンが表示されれば正常にインストールが完了しております。
Fabric SDKを導入しよう。
Fabricのプラグインがインストールできましたら、あとは簡単です。
Fabricのアイコンをクリックすると右側にFabricのUIが表示されるので、先ほど作成したアカウント情報を入力しログインします。
すると、このようにFabricに搭載されている様々なツールが表示されるので今回はClashritics
を選択し、インストールしましょう。
なんとFabric プラグインが自動的にコードをプロジェクト(build.gradle
やApplication
, Acitivty
)に書き加えてくれるので、これだけでSDKの導入は終わりです。
そしてWebからFabricにアクセスすると登録したアプリのクラッシュ情報を見ることができます。
テスト配布しよう
Fabricにはテスト配布をする機能も搭載されております。 まずFabricのホーム画面まで戻ると登録したアプリのリストが表示されるので、配布したいアプリを選択します。 すると下のような画面が表示されるので左上の配布ボタンをクリックします。
そしてこの画面に選択したアプリのapkをドラッグ&ドロップすると
このように配布したいユーザーのメールアドレスを登録する画面に遷移するので、メールアドレスを登録しましょう。
そして、このapkの情報を記入してDisturibute
ボタンを押すと配布が完了します。
登録したメールアドレスにこのようなメールが来ているはずです。
とても簡単ですので、是非みなさんもFabricを導入してみましょう!!!
オススメの記事
基本からしっかり身につくAndroidアプリ開発入門 Android Studio 2.x対応 プロが本気で教えるアプリ作りの基本「技」 (ヤフー黒帯シリーズ)
- 作者: 森洋之
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/07/29
- メディア: 単行本
- この商品を含むブログを見る
ほんきで学ぶAndroidアプリ開発入門 第2版 Android SDK 7/Android Studio 2.X対応
- 作者: 株式会社Re:Kayo-System
- 出版社/メーカー: 翔泳社
- 発売日: 2016/11/18
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
黒帯エンジニアが教えるプロの技術 Android開発の教科書 (ヤフー黒帯シリーズ)
- 作者: 筒井俊祐,里山南人,松田承一,笹城戸裕記,毛受崇洋
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/06/18
- メディア: 単行本
- この商品を含むブログを見る
Picasso を使った画像表示
今回は神Jake Wharton 氏が作成したPicassoという画像のダウンロードやらキャッシュをやってくれるライブラリーについて紹介したいと思います。
使い方
使い方は至って簡単!!
Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);
load
に画像が置かれているurlを私into
に画像を表示したいImageViewを渡すだけです。
また、画像の加工もでき
Picasso.with(context) .load(url) .resize(50, 50) .centerCrop() .into(imageView)
このようにすれば中央を中心に50*50でクロップすることができ、また角丸の画像を作りたいならば
public class CropSquareTransformation implements Transformation { @Override public Bitmap transform(Bitmap source) { int size = Math.min(source.getWidth(), source.getHeight()); int x = (source.getWidth() - size) / 2; int y = (source.getHeight() - size) / 2; Bitmap result = Bitmap.createBitmap(source, x, y, size, size); if (result != source) { source.recycle(); } return result; } @Override public String key() { return "square()"; } }
というTransformationを作成し
Picasso.with(context)
.load(url)
.transform(new CropSquareTransformation())
.into(imageView)
といった感じで渡してください。
また、自分でTransformationを作るのが面倒くさいという方はwasabeefさんが様々なTransformationを作成してくださり、ライブラリーとして配布されているのでそちらを使うのがオススメです。
Picassoでは画像の読み込み中やエラーが出たときに表示する画像を指定することができます。
Picasso.with(context) .load(url) .placeholder(R.drawable.user_placeholder) .error(R.drawable.user_placeholder_error) .into(imageView);
また、ネットに上がっている画像のみではなくローカルに保存された画像もpathを指定することで表示することができます。
Picasso.with(context).load(R.drawable.landing_screen).into(imageView1); Picasso.with(context).load("file:///android_asset/DvpvklR.png").into(imageView2); Picasso.with(context).load(new File(...)).into(imageView3);
キャッシュのサイズを制限することもできます。
int maxSize = MAX_CACHE_SIZE; Picasso picasso = new Picasso.Builder(context) .memoryCache(new LruCache(maxSize)) .build();
このmaxSize
はバイトを表します。
またデバッグでイメージがネット、キャッシュ、Diskのどれから呼び出されているのかsetIndicatorsEnabled(true)
を使い可視化することができます。
どうやって使うの?
おなじみアプリケーションレベルのbuild.gradle
に
compile 'com.squareup.picasso:picasso:2.5.2'
と記述するだけです!最高ですね!!
オススメの記事
ほんきで学ぶAndroidアプリ開発入門 第2版 Android SDK 7/Android Studio 2.X対応
- 作者: 株式会社Re:Kayo-System
- 出版社/メーカー: 翔泳社
- 発売日: 2016/11/18
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
基本からしっかり身につくAndroidアプリ開発入門 Android Studio 2.x対応 プロが本気で教えるアプリ作りの基本「技」 (ヤフー黒帯シリーズ)
- 作者: 森洋之
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/07/29
- メディア: 単行本
- この商品を含むブログを見る
黒帯エンジニアが教えるプロの技術 Android開発の教科書 (ヤフー黒帯シリーズ)
- 作者: 筒井俊祐,里山南人,松田承一,笹城戸裕記,毛受崇洋
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/06/18
- メディア: 単行本
- この商品を含むブログを見る
Android ローカライゼーションでテキスト幅を揃える
Androidは多くの言語が搭載されており、開発者にとってアプリケーションの多言語化は切っても切れない関係です。
単言語化で最も気をつけなければならないことは、あるフレーズを別の言語に置き換えたときに、テキストの長さが変わってしまいデザインが崩れてしまうことです。
今回は、このようなケースに備えて、自動的に文字サイズを変えて一定の幅にテキストを抑えてくれるAutofitHelperというライブラリーについて紹介したいと思います。
使い方
使い方は至ってシンプルです。
文字の大きさを自動で変えたいTextView
を
AutofitHelper.create(textView);
このようにAutfitHelper.createの引数に渡すだけです。
ただし、渡すTextViewにはmaxLines
などを指定し、行数を制限してください。
またxmlからも指定することができ
<me.grantland.widget.AutofitLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" /> </me.grantland.widget.AutofitLayout>
このように、変化させたいViewをAutofitLayout
でラップするか
<me.grantland.widget.AutofitTextView android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" android:maxLines="2" android:textSize="40sp" autofit:minTextSize="16sp" />
AutofitTextView
やAutofitButton
というウィジェットを使うことができます。
特にCustomしたTextViewを使ってないのであれば、提供されているウィジェットを使うことをおすすめします。
また、English(XA)かロシア語が他の言語と比べてフレーズが長いと言われているので多言語化をテストするときはこれらを使うのがおすすめです。
ちなみにEnglish(XA)とは、標準的な英語を三割ほど文字数を増やして長くしたものです。
どうやって使うの?
おなじみアプリケーションレベルのbuild.gradle
に
dependencies { compile 'me.grantland:autofittextview:0.2.+' }
と記述するだけです。簡単ですね!
問題点
AutofitHelperには現在のバージョンでは問題点があり、TextViewに.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon, 0, 0, 0)
を指定して、drawableを描画すると文字の幅を見誤ってしまいうまく調整することができません。
この対策として、Libraryをローカルに引っ張ってきてAutofitHelper.java
の98行目を
int targetWidth = view.getWidth() - view.getPaddingLeft() - view.getPaddingRight();
から
int targetWidth = view.getWidth() - view.getCompoundPaddingLeft() - view.getCompoundPaddingRight();
に変更しましょう。
それとも、現在修正されたプルリクが出されているのでそれをjitpackで使うか、マージされるか待った方が良いかもしれませんね。
オススメの記事
ほんきで学ぶAndroidアプリ開発入門 第2版 Android SDK 7/Android Studio 2.X対応
- 作者: 株式会社Re:Kayo-System
- 出版社/メーカー: 翔泳社
- 発売日: 2016/11/18
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
基本からしっかり身につくAndroidアプリ開発入門 Android Studio 2.x対応 プロが本気で教えるアプリ作りの基本「技」 (ヤフー黒帯シリーズ)
- 作者: 森洋之
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/07/29
- メディア: 単行本
- この商品を含むブログを見る
EFFECTIVE JAVA 第2版 (The Java Series)
- 作者: Joshua Bloch,柴田芳樹
- 出版社/メーカー: 丸善出版
- 発売日: 2014/03/11
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (10件) を見る
Android UI Automator Viewer を使った開発
転職や就職などをして、既存のサービスの開発に携わることがある人はコードとViewの対応関係を調べるのに苦戦した経験があるのではないのでしょうか?
プロジェクトのコードを読んでいちいち対応関係を見るのは場合によっては非常に効率が悪いです。
そこでそのような場合に備えて、今回はUI Automator Viewerを使って簡単に対応関係を調べる方法について紹介したいと思います。
ちなみに元々UI Automator Viewer とはその名の通り、UI Automatorという公式で提供されているUIテストをサポートするツールです。
このツールを使ってresource-idを取得しましょう!
どうやって使うの?
ではUI Automator Viewerの使い方について説明します。
まずAndroid Sdkのフォルダへ移動してください。
sdkの中には下記のようなフォルダが入っているはずです。
次にtools
というフォルダへ移動してください。
tools
の中にuiautomatorviewer
がありましたね。
そうです、これを使うのです。
そのまま./uiautomatorviewer
と入力して実行しても良いのですが、今後も使うことを考えてbashやらzshにpathを登録しておきましょう。
export PATH=$PATH:/あなたのsdkがあるpath/sdk/tools/uiautomatorviewer
そしてuiautomtorviewerを実行すると。
このような画面が表示されると思います。
実機とPCを接続して、uiautomatorviewerの左上にあるアイコンをクリックすると実機内に表示された画面のView層がCaptureされ表示されます。
今回はTwitterのプロフィール画面をCaptureしてみました。
気になるViewをクリックすると、そのViewのresource-idが表示されます。
ここで表示されたresource-idを使って直接viewにアクセスすることができるのです。
UI Automator Viewer の良いところは自分のアプリケーション以外にもViewの関連idを参照することができることです。
またViewのヒエラルキーも見ることができるので、TwitterやFacebookなどの大御所なアプリケーションを解析してみて、命名規則やViewの構造など参考にしてみると良いかもしれませんね。
オススメの記事
基本からしっかり身につくAndroidアプリ開発入門 Android Studio 2.x対応 プロが本気で教えるアプリ作りの基本「技」 (ヤフー黒帯シリーズ)
- 作者: 森洋之
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/07/29
- メディア: 単行本
- この商品を含むブログを見る
黒帯エンジニアが教えるプロの技術 Android開発の教科書 (ヤフー黒帯シリーズ)
- 作者: 筒井俊祐,里山南人,松田承一,笹城戸裕記,毛受崇洋
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/06/18
- メディア: 単行本
- この商品を含むブログを見る
- 作者: 武藤正隆
- 出版社/メーカー: ソーテック社
- 発売日: 2016/10/08
- メディア: 単行本
- この商品を含むブログを見る
動作が遅い!?Macを最適化して高速化しよう!
コンピューターシステムの動作が遅くなることはよくあることです。
その原因として、ウィルスやスパイウェアがPCに入り込んでいるのが考えられます。
Macは他のPCに比べてこのあたりしっかりしていますが、それでも動作が遅くなってしまうことがあります。
そこで今回はMacを最適化して、高速化する方法を紹介したいと思います。
1.起動しているアプリケーションを全て終了させる
まずはじめにアプリケーションバーが下(設定で変えた人は左右)にあることを確認してください。
アプリケーションのアイコンの下に黒い丸がある時、これはアプリケーションがまだ動いていることを表します。
そこで、アイコンを右クリックして終了のボタンを押し、アプリを停止させます。
ファインダー以外は停止できるのでこのような状態になるはずです。
2.Macを再起動する
左上のメニューにアップルのロゴがあるのでそれをクリックするとこのようなプルダウンメニューが出てきます。
プルダウンメニューの中に再起動...
という項目があるのでそちらをクリックし再起動します。
3.起動直後に開くアプリケーションを外す
Macを起動すると自動的に立ち上がるアプリケーションが存在するので、起動時間が遅くなったりメモリーを取られたりしてしまうので、不要なアプリケーションを除きましょう。
まずは先程と同じようにアップルアイコンを押しプルダウンメニューを開きます。
プルダウンメニューにシステム環境設定
とあるのでそちらをクリックします。
次に表示されたダイアログの中にユーザとグループ
という項目があるのでそちらをクリックします。
その後ログイン項目
というタブを押すと自動的に立ち上がるアプリケーションが表示されます。
使っておらず不要だと思ったアプリケーションを取り除きましょう。
4.使っていないオプションを外す
先ほどと同じようにシステム環境設定
を開きます
Bluetoothやアクセシビリティを開きます。
するとこのようにマウスポインタをシェイクして見つける
と言ったあまり使わないオプションがオンになっています。
不要だと思うオプションは外しましょう。
5.Macの発熱を防ぐ
PCは使用している周りの環境に左右され熱量を発します。
基本的により乾燥していて、温度が16–24 °Cの環境でPCを動かすのが良いでしょう。
また、MacにはPC内の温度に合わせてファンを回してくれるアプリケーションが多く存在するのでそれらを使うことをおすすめします。
6.ウィジェットを減らす
dashboardを開きます。
ウィジェットの中には温度を計測してくれたり、日付を表示してくれたりとても便利なものが多いですが、dashboard使用していなくてもバックグラウンドで起動されているので不要なものは取り除きましょう。
7.アクティビティモニターでチェックする
アプリケーションのユーティリティフォルダーに行きアクティビティモニター
を見つけましょう。
このツールはMacがどれだけCPU、メモリー、RAMを使用しているか詳細に見ることができます。
使っていないのにCPU、メモリー、RAMを消費しているアプリケーションを見つけたら、どんどん終了させて行きましょう。
8.メンテナンスアプリケーションを使い、使用していないファイルを削除する
Macの中には使用していないのに容量を多く占めているファイルやキャッシュが意外と存在します。
幸運にもMacにはこれらを可視化してくれるApplicationが多く存在するので、これらを使い不要なファイルやキャッシュをどんどん削除していきましょう。
個人的にはDr. Cleanerが無料で且つわかりやすいのでおすすめです。
終わりに
如何でしたでしょうか?
これらのステップをすべてやるのは面倒くさいと思うかもしれませんが、段違いにMacのスピードが高速化すると思います。
私も良くアプリケーションを開発していてフリーズすることが多かったのですが、これらのステップを踏むことで悩みは解消されました。
普段からMacのフリーズに悩まされている皆さん、これを機に快適なMac生活を送ってみては如何でしょうか?
- 出版社/メーカー: Apple Computer
- メディア: エレクトロニクス
- この商品を含むブログ (2件) を見る
APPLE MacBook Pro 13.3/2.5GHz Core i5/4GB/500GB/8xSuperDrive DL MD101J/A
- 出版社/メーカー: アップル
- 発売日: 2012/06/13
- メディア: Personal Computers
- 購入: 2人 クリック: 44回
- この商品を含むブログ (12件) を見る
モノが少ないと快適に働ける―書類の山から解放されるミニマリズム的整理術
- 作者: 土橋正
- 出版社/メーカー: 東洋経済新報社
- 発売日: 2014/03/07
- メディア: Kindle版
- この商品を含むブログ (4件) を見る
Android 強制アップデートの実装方法
今回はAndroidアプリの強制アップデートの方法について説明したいと思います。
現在リリースされているアプリケーションで致命的なバグを見つけた時、すぐにでもそのバグを取り除きたいですよね?
でも、Androidで自動アップデートを設定していない人だと、アプリケーションが更新されたことに気づかない人が多いです。
このようなケースを対処するためにAndroidの最新バージョンを確認し、強制アップデートをする方法について説明したいと思います。
実装
まずは、現在使用しているアプリケーションのバージョンを取得します。
PackageManager pm = mContext.getPackageManager(); PackageInfo pInfo = null; try { pInfo = pm.getPackageInfo(mContext.getPackageName(), 0); } catch (PackageManager.NameNotFoundException e1) { e1.printStackTrace(); } mCurrentVersion = pInfo.versionName;
そして次に最新バージョンの値を取得するのですが、一々独自サーバーで管理するのは面倒くさいのでGoogle play storeの公式ページから引っ張てきちゃいましょう。
ここでGoogle play storeのhtmlを処理するのでJsoup
というライブラリーをインポートしてください。
Jsoup
の使い方については次回の記事で説明したいと思います。
Document doc = Jsoup.connect(mContext.getString(R.string.play_store_url)).get(); mLatestVersion = doc.getElementsByAttributeValue ("itemprop", "softwareVersion").first().text();
Jsoup
のconnect
には公開しているアプリのurlを渡してください。
Play storeのhtmlを見るとわかると思うのですが
itemprop
がsoftwareVersion
となっているタグの中にバージョンが記述されていますね。
それをdoc.getElementsByAttributeValue("itemprop", "softwareVersion").first().text()
を使って取ってきているのです。
また、これはapi通信を行っているので非同期処理を行わなくてはいけません。
AsyncTaskなどを拡張したクラスの中で記述しましょう。
そして、最新バージョンを取得できたので現在のバージョンと比較します。
int latestVersion = Integer.valueOf(mLatestVersion.split("\\.")[1]); int currentVersion = Integer.valueOf(mCurrentVersion.split("\\.")[1]); Log.d("TEST", "Current Version " + currentVersion + " Latest Version " + latestVersion); if (latestVersion > currentVersion) { showUpdateDialog(); }
このコードではマイナーバージョンを比較しており、例えば1.0.0
が1.1.0
になった時にダイアログを表示するようにしております。
あとは表示するダイアログのcancelable
をfalse
にすれば完成です。
一応全体のコードを載せておきますね。
public class UpdateChecker { private String mCurrentVersion; private String mLatestVersion; private Context mContext; private AppCompatActivity mActivity; @Inject public UpdateChecker(Context context) { mContext = context; } public void checkUpdate(AppCompatActivity activity) { mActivity = activity; PackageManager pm = mContext.getPackageManager(); PackageInfo pInfo = null; try { pInfo = pm.getPackageInfo(mContext.getPackageName(), 0); } catch (PackageManager.NameNotFoundException e1) { e1.printStackTrace(); } mCurrentVersion = pInfo.versionName; new GetLatestVersion().execute(); } private class GetLatestVersion extends AsyncTask<String, String, JSONObject> { @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected JSONObject doInBackground(String... params) { try { Document doc = Jsoup.connect(mContext.getString(R.string.play_store_url)).get(); mLatestVersion = doc.getElementsByAttributeValue ("itemprop", "softwareVersion").first().text(); } catch (Exception e) { e.printStackTrace(); } return new JSONObject(); } @Override protected void onPostExecute(JSONObject jsonObject) { if (mLatestVersion != null) { int latestVersion = Integer.valueOf(mLatestVersion.split("\\.")[1]); int currentVersion = Integer.valueOf(mCurrentVersion.split("\\.")[1]); Log.d("TEST", "Current Version " + currentVersion + " Latest Version " + latestVersion); if (latestVersion > currentVersion) { showUpdateDialog(); } } super.onPostExecute(jsonObject); } } private void showUpdateDialog() { MaterialDialog.Builder materialDialog = new MaterialDialog.Builder(mActivity); materialDialog.cancelable(false); materialDialog .title(mContext.getString(R.string.update_title)) .positiveText(mContext.getString(R.string.update)) .onPositive(new MaterialDialog.SingleButtonCallback() { @Override public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { mContext.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse (mContext.getString(R.string.play_store_intent_url))).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); mActivity.finish(); dialog.dismiss(); } }) .show(); } }
オススメ記事
基本からしっかり身につくAndroidアプリ開発入門 Android Studio 2.x対応 プロが本気で教えるアプリ作りの基本「技」 (ヤフー黒帯シリーズ)
- 作者: 森洋之
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/07/29
- メディア: 単行本
- この商品を含むブログを見る
超初心者でも大丈夫! はじめてのAndroidプログラミング Android Studio 2対応
- 作者: 金田浩明
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/04/30
- メディア: 単行本
- この商品を含むブログ (1件) を見る
Effective Modern C++ ―C++11/14プログラムを進化させる42項目
- 作者: Scott Meyers,千住治郎
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/09/18
- メディア: 大型本
- この商品を含むブログ (7件) を見る
Android Facebookのようなボタンの実装
今回はFacebookのようなボタンお実装方法について説明します。 使用するのはShineButtonというライブラリーです。
使用方法
使用方法はとても簡単です。 まずはxmlに
<com.sackcentury.shinebuttonlib.ShineButton android:layout_width="50dp" android:layout_height="50dp" android:layout_centerInParent="true" android:src="@android:color/darker_gray" android:id="@+id/po_image2" app:btn_color="@android:color/darker_gray" app:btn_fill_color="@android:color/holo_green_dark" app:allow_random_color="false" app:siShape="@raw/smile"/>
と記入します。
btn_color
はボタンが押される前のオリジナルカラーでbtn_fill_color
はボタンが押された後のカラー。
allow_random_color
はボタンクリック直後の輝いている円の色をランダムにするか、siShape
はボタンのリソースを指定できます。
あとはこのようにJavaで呼び出せば完成です。
shineButton = (ShineButton) findViewById(R.id.shine_button); shineButton.init(activity);
またxmlではなくjavaから付加情報を記入することができます。
ShineButton shineButtonJava = new ShineButton(this); shineButtonJava.setBtnColor(Color.GRAY); shineButtonJava.setBtnFillColor(Color.RED); shineButtonJava.setShapeResource(R.raw.heart); shineButtonJava.setAllowRandomColor(true); LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(100, 100); shineButtonJava.setLayoutParams(layoutParams); if (linearLayout != null) { linearLayout.addView(shineButtonJava); }
他にも付加情報があるので表で説明します。
Property | Java method | Description |
---|---|---|
siShape | void setShapeResource(int) | リソースの指定 (png) |
btn_color | void setBtnColor(int) | オリジナルカラーの指定 |
btn_fill_color | void setBtnFillColor(int) | クリック後のカラーの指定 |
allow_random_color | void setAllowRandomColor(boolean) | クリック直後の円カラーをランダムにするか指定 |
shine_animation_duration | void setAnimDuration(int) | 輝くアニメーションの間隔を指定 |
big_shine_color | void setBigShineColor(int) | 輝きの円(大)のカラー指定 |
click_animation_duration | void setClickAnimDuration(int) | ボタン自体のアニメーション間隔の指定 |
enable_flashing | void enableFlashing(boolean) | フラッシュするアニメーションにするか指定 |
shine_count | void setShineCount(int) | 円の個数をしてい |
shine_distance_multiple | void setShineDistanceMultiple(float) | 輝きの範囲を指定 |
shine_turn_angle | void setShineTurnAngle(float) | 円の曲がる角度を指定 |
shine_size | void setShineSize(int) | 輝きのサイズをピクセル単位で指定 |
small_shine_color | void setSmallShineColor(int) | 輝きの円(小)のカラー指定 |
small_shine_offset_angle | void setSmallShineOffAngle(float) | 円(大)から円(小)に遷移する方向の指定 |
そして、このように指定すると
app:shine_turn_angle="20" app:shine_count="15" app:allow_random_color="true" app:enable_flashing="true"
とても綺麗ですね!
イメージをハートにすればTwitter風のボタンも作ることができますね。
ボタンひとつ変えるだけでUI UXの改善ができるので、是非実装してみてください!
どうやって使うの?
アプリケーションレベルのbuild.gradleに
buildscript { repositories { mavenCentral() } } dependencies { compile 'com.sackcentury:shinebutton:0.1.6' }
と記述すれば使用できます!
基本からしっかり身につくAndroidアプリ開発入門 Android Studio 2.x対応 プロが本気で教えるアプリ作りの基本「技」 (ヤフー黒帯シリーズ)
- 作者: 森洋之
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/07/29
- メディア: 単行本
- この商品を含むブログを見る
黒帯エンジニアが教えるプロの技術 Android開発の教科書 (ヤフー黒帯シリーズ)
- 作者: 筒井俊祐,里山南人,松田承一,笹城戸裕記,毛受崇洋
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/06/18
- メディア: 単行本
- この商品を含むブログを見る
Android UI Cookbook for 4.0 ICS(Ice Cream Sandwich)アプリ開発術
- 作者: あんざいゆき
- 出版社/メーカー: インプレスジャパン
- 発売日: 2012/03/16
- メディア: 単行本(ソフトカバー)
- 購入: 2人 クリック: 47回
- この商品を含むブログ (18件) を見る