読者です 読者をやめる 読者になる 読者になる

Drawable

Drawableは、Viewの描画に使うリソース情報を抽象化したものといったが、なにも画像だけとは限らない・・・。Drawable | Android Developersどういった形状にするかをXMLで定義することもできる・・・。activity_main.xmlは、前と同じ2つのButton・・・。str…

Resources.getDrawable

Resources.getDrawableでDrawableリソースを取得できる・・・。Resources | Android DevelopersDrawableは、Viewの描画に使うリソース情報を抽象化したもので、例えば背景画像などもDrawableリソースとして扱える・・・。drawableの適当なフォルダに(ここで…

Resources.getColor

Resources.getColorで、リソースに定義した色情報を取得できる・・・。Resources | Android Developersactivity_main.xmlに、Buttonを3つ・・・。strings.xmlに"Button1"~"Button3"・・・。ここで、Android XML Fileを追加・・・。valuesの下にcolors.xmlを…

Color

Colorは、色を扱うクラス・・・。Color | Android Developers今回はJava側で、Buttonの背景色として、Colorクラスに定義された赤緑青の定数(int)をセットする・・・。activity_main.xmlで、Buttonを3つ配置・・・。strings.xmlには"Button1"~"Button3"を定…

Resources.getString

Resources.getStringで/res/value/strings.xmlに定義された文字列リソースを取得できる・・・。Resources | Android Developersactivity_main.xmlに、TextViewを3つ追加したが、android:textはセットしていない・・・。strings.xmlには、"TextView1"~"TextV…

Resources

これまでも使ってきたリソースについて改めて・・・。Resources | Android DevelopersResourcesはリソースを扱う大元のクラス・・・。 Resourcesオブジェクトを取得したら、さらにリソースタイプ別にオブジェクトを取得し、そこからリソースにアクセスできる…

LinearLayout.gravity

layout_gravityとは別に、gravityという属性もあって、これは子ビューが自分のビュー内のどの方向に寄っているかを決定する属性・・・。LinearLayout | Android Developersさすがに左右上下中央すべて配置するのは面倒なので、このLinearLayoutは縦に2つButt…

LinearLayout.LayoutParams.layout_gravity

layout_gravityは、親のViewGroup内のどの位置かを決定する属性・・・。LinearLayout.LayoutParams | Android Developersこれで、Buttonを左右や上下や中央に寄せる・・・。2つのLinearLayoutを用意して、どちらもlayout_weightを1にする・・・。 こちらはor…

LinearLayout.LayoutParams.layout_weight

layout_weightを使うと、ViewまたはViewGroup同士のレイアウトを比率で分けることができる・・・。LinearLayout.LayoutParams | Android Developersactivity_main.xmlで、LinearLayoutのlayout_widthをmatch_parentにして、まずはButtonにlayout_weightを付…

ViewGroup.LayoutParams.layout_width

ButtonやTextViewなどのほとんどのView、LinearLayoutやRelativeLayoutなどのほとんどのViewGroupで設定が必須となっているlayout_widthは、そのViewまたはViewGroupのレイアウト幅を決定するXML属性・・・。ViewGroup.LayoutParams | Android Developersも…

PendingIntent

PendingIntentは、作成したらすぐに起動するインテントではなく、指定した時間やタイミングに起動するようなタイプのインテント・・・。PendingIntent | Android DevelopersAlarmManager以外にもRemoteViewなので使うのだが、まあ一番わかりやすいのはAlarmM…

AlarmManager

AlarmManagerを使うと、指定した時刻に指定したIntentの処理を実行できる・・・。AlarmManager | Android DevelopersActivityを呼ぶIntentを指定することで、Activityを起動したり、Serviceを呼ぶIntentを指定することでServiceを起動したり、ブロードキャス…

Camera

Cameraはカメラを扱うクラス・・・。Camera | Android Developersまずは、カメラを起動してシャッターを押すまでに表示されるプレビュー画面をアクティビティ上に表示するところまでをやる・・・。activity_main.xmlは、プレビュー画面はSurfaceViewに表示す…

MediaStore

写真、動画、音楽なども、ContentResolverを使って取り出す・・・。 MediaStoreに、それらのメディア情報に関する定数が定義されているので、それを使う・・・。MediaStore | Android Developersまず、activity_main.xmlは、今回は写真を表示するので、GridV…

BitmapFactory

前回は、Bitmapをファイルから読み込んだが、今回はdrawableリソースから読み込む・・・。 前回同様、BitmapFactoryで読み込む・・・。BitmapFactory | Android Developersactivity_main.xmlには、imageview1・・・。MainActivity.javaは、今回は、BitmapFac…

Bitmap

ImageViewの回では、srcにdrawableに置いた画像を直接指定して画像を表示していた・・・。 今回は、アプリフォルダにある画像ファイルを読み込んで、いったんBitmapにし、それをImageViewで表示する・・・。Bitmap | Android Developersactivity_main.xmlは…

ContactsContract

ContentResolverで連絡帳から名前を取り出してリスト表示するということはできたが、 電話番号やメールアドレスは取り出し方が面倒なので避けていた・・・。今回はContactsContractに定義された定数を使って、電話番号、メールアドレスも取り出していく・・…

FragmentTabHost

ActionBar.TabもAndroid5.0で非推奨になったので、タブUIを実現する方法のひとつとしてFragmentTabHostがある・・・。FragmentTabHost | Android DevelopersFragmentTabHostはTabHostのcontent部分をFragmentにできるようにしたもの・・・。 標準のWidgetで…

ActionBar.Tab

TabHostは非推奨になったので、Android3以降はActionBarの登場とともに、ActionBar.Tabというタブの機能が付くようになった・・・。ActionBar.Tab | Android DevelopersActionBar.Tabでタブを作成、画面はそれぞれがFragmentとなる・・・。XMLで、fragment1…

TabHost

タブで画面を切り替える方法はいろいろあるが、一番基本的な方法はTabHostを使う方法・・・。TabHost | Android Developers実はもう非推奨になっているはずだが、削除はされていない模様なので使えるには使えるっぽい・・・。 これを使って、タブで画面切り…

ContentResolver

Androidアプリ上で扱う写真や、動画、音声ファイル、電話帳、ブックマークなどあらゆるデータの情報はAndroid内部のDBに登録されている・・・。 このDBにアクセスするには、ContentResolverを使う・・・。ContentResolver | Android Developers今回は、電話…

DownloadManager

ファイルのダウンロードを実現するなら、DownloadManagerを使うという方法もある・・・。DownloadManager | Android Developersactivity_main.xmlは、edittext1がURL入力用・・・。 button1でダウンロードのリクエストを投げる・・・。BroadcastReceiverの派…

HttpURLConnection

HttpURLConnectionは、Java標準のHTTP通信のためのクラス・・・。HttpURLConnection | Android Developersもともと使えるが、Android6でDefaultHttpClientが使えなくなったので、より重要度が増している・・・。 前回のDefaultHttpClientを使ったものを、Htt…

DefaultHttpClient

そろそろ非同期処理の中で行う処理もまともなものにしていこう・・・。 HTTPリクエストを投げて、Webページのダウンロードやデータのポストを行うにはHttpClientを利用する・・・。DefaultHttpClient | Android Developers | Android DevelopersDefaultHttpC…

IntentService

IntentServiceも非同期処理を行うクラスだが、こちらはServiceの派生クラスで、主に画面遷移に関係なくバックグラウンドで時間のかかる処理を任せる場合に使う・・・。IntentService | Android Developersプロジェクトを作成したら、IntentServiceの派生クラ…

AsyncTaskLoader

AsyncTaskLoaderは、Android 3から導入された新しい非同期処理クラス・・・。AsyncTaskLoader | Android Developers近年、こちらのほうが推奨されているので、前回の非同期処理をこれで書いてみる・・・。AsyncTaskLoaderの派生クラスとしてCustomAsyncTaskL…

AsyncTask

前回までの、ワーカースレッドに重い処理を任せて、終わったら通知してもらうような処理を非同期処理という・・・。 ThreadとHandlerを使ったパターンは一番基本的なものだが、少々複雑なことをしようとするとこれらでは大変・・・AsyncTask | Android Devel…

Handler

ThreadとRunnableを使って、重たい処理を別のスレッドに任せることができた・・・。 そのスレッドの処理が終ったら、TextViewやButtonの状態、Toast表示などで終わったことを通知したい・・・。 package com.bgstation0.android.sample.handler_; import and…

Runnable

Threadは、スレッド上で実行する処理内容runメソッドを持つRunnableインタフェースを実装する必要がある・・・。Runnable | Android Developers今回は、匿名クラスでRunnable派生クラスを定義し、それをThreadのコンストラクタ引数に渡すことで、runを実行す…

Thread

ファイルのダウンロード、大量データのDBへの投入は、時間がかかる重たい処理・・・。 package com.bgstation0.android.sample.thread_; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.Menu; impor…

BroadcastReceiver

全てのアプリに対して投げるインテントをブロードキャストインテントと言い、それは例えばバッテリーの減少通知や、端末の起動通知、航空機モードへの切り替え通知など、システムから何かが発生したことを通知するときに使われることが多い・・・。 (またサ…

IntentFilter

Intentの項で、"http~"で始まるURIを持つ暗黙的インテントを投げたら、それにブラウザが反応し、起動して、そのURIの指すWebページを表示できた・・・。 このブラウザの様に、受け側のアプリが、送る側のインテントの条件に当てはまっていれば、アプリでそ…

Activity.startActivityForResult

アクティビティAから、別のアクティビティBを起動した後、元のアクティビティAに戻るときに、アクティビティBから値を受け取って、アクテビティA上で表示・・・。 このように戻るときにパラメータを受け取りたい場合は、Activity.startActivityForResultを使…

GridView

GridViewは、格子状に要素を表示するグリッドビューを扱うクラス・・・。GridView | Android DevelopersListViewと同様にAdapterと紐付けて使う・・・。GridViewを配置・・・。 numColumnsは列の数・・・。ここでは4列ずつ表示・・・。1つの要素のレイアウト…

ProgressBar

ProgressBarはプログレスバーを扱うクラス・・・。ProgressBar | Android Developers今回はボタンを押したら、プログレスバーが進むようにする・・・。Button、そしてProgressBarを配置・・・。 indeterminateは0%とか50%のような明確な進捗を表示しない不定…

FragmentTransaction.show

複数のフラグメントをaddした後のフラグメント表示の切り替えに関してはshowとhideを使って切り替える・・・。FragmentTransaction | Android Developers追加した後は、削除されない限り、ライフサイクルに変化がないので、showやhideで表示と非表示を繰り返…

FragmentManager.findFragmentByTag

replaceやaddした時に"tag1"などタグ名を付けていたと思うが、このタグ名からfindFragmentByTagで、Fragmentオブジェクトを探して取得することができる・・・。FragmentManager | Android Developers前回はMenuが7つあったが、今回は5つに減らした・・・。st…

FragmentManager.popBackStack

replace、または、addした時に、addToBackStackを呼んでおけば、バックキーで1つ前のフラグメントに戻ることができた・・・。 これは、バックキーを押した場合、デフォルトでpopBackStackが呼ばれるからである・・・。FragmentManager | Android Developers…

FragmentTransaction.add

フラグメントを切り替える方法は、FragmentTransaction.replaceで置換する方法の他にもう一つ、FragmentTransaction.addで追加するというものがある・・・。FragmentTransaction | Android Developersこの場合のフラグメントの状態はどうなるのかを検証する…

FragmentTransaction.addToBackStack

FragmentTransaction.replaceの後に、FragmentTransaction.addToBackStackを呼ぶと、置換前のフラグメントをバックスタックと呼ばれる領域(スタック?)に保存してくれる・・・。 これをすることで、バックキーを押したときに前のフラグメントに戻ることができ…

FragmentTransaction.replace

前回でも使ったが、FragmentTransaction.replaceで指定したFragmentに置き換えることができる・・・。FragmentTransaction | Android Developersreplaceは置き換えるということである・・・。 置き換えるということは、以前のフラグメントは破棄されるという…

FragmentTransaction

FragmentTransactionは、フラグメントの追加や置き換えなどの操作をするクラス・・・。FragmentTransaction | Android DevelopersFragmentManagerの項では、Fragmentタグを2つ用意して、activity_main.xmlに静的に埋め込んだ・・・。 今回は、メニューアイテ…

RegisterClassEx

RegisterClassExは、ウィンドウクラスを登録するWindowsAPI・・・。RegisterClassEx 関数この関数で登録する構造体はWNDCLASSEXとなる・・・。 WNDCLASSとの違いは、構造体のサイズを指定するところと、大きなアイコンとは別に小さなアイコンを設定できると…

CreateWindowEx

CreateWindowExは、ウィンドウを作成するWindowsAPI・・・。CreateWindowEx 関数CreateWindowとの違いは、第1引数に拡張スタイルを指定できることである・・・。今回は、メインウィンドウの中に、"STATIC"ウィンドウクラスの子ウィンドウを作成し、その子ウ…

CommandLineToArgvW

CommandLineToArgvWは、GetCommandLineなどで取得した1つのコマンドライン引数文字列を分解して、複数の引数文字列配列へのポインタや、引数の数を返すWindowsAPI・・・。CommandLineToArgvW 関数GetCommandLineで取得した引数文字列は、スペースを含んだ生…

FrameLayout

FrameLayoutは、基本的にはビューを1つだけ配置するためのレイアウトで、2つ目以降のビューを配置すると上に重なって表示される・・・。FrameLayout | Android Developers逆に言うと、重ねて配置したい場合はこれを使うといい・・・。activity_main.xmlに、F…

GetCommandLine

GetCommandLineは、コマンドライン引数文字列を取得するWindowsAPI・・・。GetCommandLine 関数_tWinMain関数のlpCmdLineにもコマンドライン引数文字列は格納されているが、実行ファイル名が含まれていない・・・。 実行ファイル名を含めたコマンドライン引…

auto

C++11では、型名の代わりにautoを使うことで、初期化時に初期値を基準に型推論して型を決定することができる・・・。で、そのautoの前に、test.hにclass_testを定義・・・。x_というメンバを持ち、値をセットしたり、取得したり、出力したりするだけ・・・。…

auto_ptr

C++には、ガベージコレクションがないので、newで確保したメモリはdeleteで解放しなければならない・・・。 しかし、大きなプログラムになるとdeleteし忘れることもあるだろう・・・。そのような場合に備えて、C++ではスマートポインタなるものがある・・・…

#include文

#include文は、プリプロセッサディレクティブのひとつで、指定されたファイルを取り込むという命令・・・。プリプロセッサは、コンパイル前に行う前処理をする機能で、プリプロセッサが行う命令をプリプロセッサディレクティブという・・・。 (なのでプリプ…