寒川アクアブログ

美容師しながらアプリ開発していて水草が趣味の私のブログです

2016-01-01から1年間の記事一覧

NotificationCompat 内容を一部更新する

NotificationCompatを利用したノーティフィケーションの発行、部分的な更新の方法 通知が出るときのアニメーション無しに、通知の一部を更新する方法です。 また、スワイプや、”通知を全て消去”しても消えない通知を作る方法です。(注) 端末を上から下にス…

APIレベルを取得する(処理を分ける)

APIレベルによって処理を分ける方法です。 APIレベルを取得する わずか一行で取得可能です。 int apiInt = Build.VERSION.SDK_INT; OSのAPIレベルを整数値で取得できます。 各レベルは、コードネームの定数で定義されています。 Build.VERSION_CODES.LOLLIPO…

◆AndroidStudio◆メモリを2G→4Gにした結果

アンドロイドスタジオがいい加減重いと感じたので、 メモリ増設を決断しました。 メモリ増設なんてやったことなかったので、不安でしたが、 スマホでいろいろ調べてみると、 意外と敷居が低そうなので、やってみることに。 まずPCのマニュアルから、適合する…

サウンドピッカーを呼び出して着信音等を取得する

着信音や通知音を取得できるサウンドピッカーを呼び出す方法と、その結果の受け取り方 黙示的インテントから、サウンドピッカーを呼び出します。 Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); intent.putExtra(RingtoneManager.EXT…

アニメーションさせる(Canvasを使ったゲームなど)

パズルゲームなどで、タイルを動かした時に、瞬時に移動するのではなく、 滑らかにアニメーションしながら移動したい。 なおかつ、端末の処理速度などによって、早くなったり遅くなったりせず、どのような端末でも一貫した動きが欲しい。 そのような機能を求…

サイズをdp(dip)で指定する

ピクセル密度が異なる端末でも、対象の図形やビューをおおかた同じ大きさで表示させるには、dp値を指定します。 dp(dip)についての詳細は、ここでは省略させていただきます。 dp値から、実際のピクセル数を求める ピクセル = getDisplayMetrics().density *…

FREETEL MIYABI(雅)のレビュー

FREETEL MIYABI(シャンパンゴールド)を買ったので、さっくりとレビューします。 いいところ SIMフリーであること 当然といえば当然なんですが、なんといってもSIMフリーであることです。 大手三社以外の電話会社が選べるので、中にはとても安いところもあ…

NotSiblingエラー

is not a sibling in the same relativelayout [NotSibling]のようなエラー文が出た場合の対処方法 アプリケーションのAPKファイルを作成する際に、上記のようなエラーが発生しました。 原因としては、レラティブレイアウトの相対関係において、基準となるビ…

スリープ状態を解除する(コードから解除する)

端末をスリープ状態から解除するコードの一例です アラームやタイマーアプリの鳴動時に、ユーザーに知らせるために端末のスリープ状態を解除したい場合に有効です。 端末をスリープから解除する(画面の明かりを点ける)ための処理をサンプルメソッドのwakeF…

UNO新ルールで王様ゲーム化!?

今年45周年となるUNOに新ルールが追加されました。 とりかえっこワイルドと、白いワイルドカードという新しいカードが、それぞれ1枚と3枚、デックに追加されました。 とりかえっこワイルドは、自分の手札と任意のプレーヤーの手札をまるごと取り替える。 白…

スワイプしても消えないノーティフィケーション

タイマーや目覚まし時計のアプリでは、アラームがセットされていることを明確にするために、 通知バーになんらかのメッセージを表示することがあります。 これが「すべての通知を消去」等をしたときに、アラームの通知も消えてしまっては、目覚ましは本当に…

独自に用意したフォントを使う

テキストビューで独自に用意したフォントを使う方法です。 アンドロイドスタジオの場合 準備として、src/mainフォルダー内にassetsという名前でディレクトリを新規作成し、その中にフォントファイルそのものを置きます。 コードから、用意したフォントを反映…

TextView等で、独自のフォントを使う

テキストビュー等で独自に用意したフォントを使う方法です。 アンドロイドスタジオの場合は、src/mainフォルダ内に、assetsディレクトリをつくり、フォントファイルを置きます。 TextView textView = (TextView)findViewById(R.id.text_view); Typeface type…

ダイアログの幅を指定する

ダイアログの幅をコードから指定する方法です ダイアログを表示する際、通常は、そのダイアログの内容がぴったり納まる幅に縮小されて表示します。 レイアウトリソースで、ルートレイアウトをmatch_parentにしても、そのように調整されてしまいます。 あまり…

ビューのBackgroundColorを取得する

ボタンやレイアウトなどのビューのBackgroundを色で指定し、その色を後から動的に取得する方法です。 View v = target; // 対象のビューです。 ColorDrawable colorDrawable = (ColorDrawable) v.getBackground(); int colorInt = colorDrawable.getColor();…

Tagからフラグメントを探す

静的に組み込んだフラグメントをタグで探す方法です。 レイアウトリソースの当該フラグメントに、任意のタグを付けます。 識別にオブジェクトも使うことができますが、参照を取得するだけならテキストをキーのように指定するのが簡単です。 <fragment android:tag="key" android:layout_width="match_parent" android:layout_height="wrap_content" android:name="package" android:id="@+id/myfragment" /> アクティビティ</fragment>…

Snackbarを使う

事前準備 1.スナックバーを使用するためにサポートライブラリーを、SDKマネージャーを使ってダウンロードします。2.Project Structure の Dependenciesタブから com.android.support:support-v4:23.1.1 をライブラリーに追加します。 3.build.gradleに以下の…

GIMPで、マテリアルなアイコンを作る

GIMPを使って、マテリアルデザインのガイドラインに沿ったアイコンの作成方法です。 例としてこのようなアイコンを作成する手順です。 (16の数字は、特に意味はありません) 1.画像を新規作成します。 ・画像サイズは512*512ピクセル、詳細設定に各解像度…

’10:06’のように時間を2桁ずつの0付きで表示する方法

タイマーアプリの開発などで、数時が一桁になっても0を付けて二桁で表示する方法です。 int min = 31; int sec = 8; String text = String.format("%02d:%02d",min,sec); これで、「31:8」とはならず、「31:08」と表示されるようになります。 残り時間をテキ…

FloatingActionButtonを、Snackbarと連動して動かす方法

Snackbarの表示に合わせてFloatingActionButtonを上下させる方法です スナックバーを表示したときに、ボトムに配置したフローティングアクションボタン(以下、FAB)と重ならないように、これらを連動させて動かすには、CoordinatorLayout内にFABを配置して…

ダイアログのタイトルを非表示にする方法 Android Studio

ダイアログのタイトルを非表示にする コードからダイアログを生成する際、 setTitleをしなくてもタイトルの枠が表示されますが、 requestWindowFeature(Window.FEATURE_NO_TITLE); を追加することで、タイトルを非表示にできます。 Dialog varDialog = new D…

ToolBarを、setSupportActionBarしたときにエラーになる場合の対処法

題名のとおり、ToolBarを、setSupportActionBar(ToolBar)したときにエラーになる場合の対処法です。 Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar); setSupportActionBar(toolbar); これでエラーが出た場合、 原因は、独自に用意したツールバーを…

TabLayoutを使う Android Studio

TabLayoutの使い方 1.レイアウトに、TabLayoutを配置します タブレイアウトはタブの切り替え・現在のタブの表示の機能を持った独立したビューのようなので、 好きな所に配置できるようです(ViewPagerにくっつける必要はありません)。 2.ViewPagerとTabLayo…

配列をSharedPreferencesに保存する方法 Gson

Gsonクラスを利用して配列をSharedPreferencesで保存する SharedPreferencesはキー1個に対して値ひとつしか保存できませんが、 Gsonを使うことで、配列を文字列に変換し、 putStringで保存ができるようになります。 もちろん、getStringで読み出して、配列に…

Windows用のAndroid studioで使えるショートカット

Windows用のAndroid studioで使えるショートカット 他にもまだまだありますが、よく使うものたちです。(Windows用) ショートカットキー 動作 Ctrl + Y 1行削除 Ctrl + / 選択行をコメントアウト Ctrl + P メソッドのパラメーターを表示 Ctrl + W 選択範囲…

フラグメントで起きたイベントをアクティビティに知らせる(コールバック)

フラグメントで起きたイベントをアクティビティに知らせる方法です。 インターフェイスとしてリスナーを定義します public interface MyListener { void onDo(); } 空のメソッド(ここでは引数無しのonDo()としています)を定義します。 フラグメント側で、…

スワイプで切り替わるビュー ViewPager/Fragment

Android studioで、スワイプで切り替わるビューを動的に作成する方法 レイアウトで定義したフラグメントをビューページャーにセットし、横方向スワイプで移動できるようにします。 また、UIの上部にPagerTabStripを配置し、現在のページのタイトルを表示する…

画面のサイズを取得する

Android studioで、画面のサイズを取得する方法です。 (アクティビティから呼び出す場合)API13以降 WindowManager windowManager = (WindowManager)getSystemService(WINDOW_SERVICE); Display disp = windowManager.getDefaultDisplay(); Point point = n…

Android studio MediaPlayerでBGMを再生する

MediaPlayerで音声ファイルを再生します。 リソースに用意した音声ファイルを再生する方法です。 比較的尺が長い音声、音楽に適しています。 res/rawフォルダに音楽ファイルを入れておきます。 private MediaPlayer mediaPlayer; mediaPlayer = MediaPlayer.…

CountDownTimerを使う

Android studioで、カウントダウンタイマーを使う。 5秒後に終了処理、その間に1秒ごとに周期的な処理をさせたい場合、 CountDownTimer countDownTimer; countDownTimer = new CountDownTimer(5000,1000) { @Override public void onTick(long millisUntilF…