タグ

ブックマーク / ichitcltk.hustle.ne.jp (7)

  • レイアウト(7)-FrameLayout ウィジェットを重ね合わせて配置する。 - 愚鈍人

    FrameLayoutは、後に配置したウィジェットが先に配置したウィジェットの上に重ね合わせて表示される。 透過色を使って背景画像に上書きする形で、 下のレイヤーから上のレイヤーまで何階層かに渡って画像を合成して表示させるのに便利かな。 次の例は、FrameLayoutを使って大きさの異なるボタンを重ね合わせて表示する、xmlレイアウトファイルの例である。 リスト1(main.xml) このプログラムを実行すると、以下のような画面が表示される。 FrameLayoutの内部に最初に配置したbutton1ボタンが最背面に、 2つ目に配置したbutton2ボタンがbutton1ボタンの前面に、 最後に配置したbutton3ボタンが更にbutton2ボタンの前面にと、 後に配置したウィジェットほど前面に表示されているのがわかる。 動的にウィジェットの重ね合わせの順番を変更する。 FrameLay

    レイアウト(7)-FrameLayout ウィジェットを重ね合わせて配置する。 - 愚鈍人
    NSTanechan
    NSTanechan 2013/05/28
    FrameLayout
  • グラフィックス(2)-SurfaceViewによる描画 - 愚鈍人

    「グラフィックス(1)-Viewクラスへの描画」 では、グラフィックの描画にViewクラスを使っていましたが、これをSurfaceViewクラスを使って実現する事もできます。 SurfaceViewは、Viewクラスを継承したクラスですが、Viewクラスよりも高速に描画ができ、ゲームプログラミング等に適しています。 通常のウィジェットと違い、別スレッドで直接GUI操作をおこなう事もできます。 今回は「グラフィックス(1)-Viewクラスへの描画」で紹介した、リスト1~リスト3のプログラムを、 SurfaceViewで実現するにはどのようにしたらよいか、についてみていきます。 SurfaceViewによるグラフィックスの基形-静止した画像の描画 「グラフィックス(1)-Viewクラスへの描画」のリスト1では、 Viewを使って、静止した画像を描画していましたが、これをSurfaceView

  • グラフィックス(4)-座標と座標をあらわすクラス - 愚鈍人

    グラフィックを描画するには、描画する位置を座標で指定する必要があります。 ここでは、座標と座標をあらわすクラスについてみていきます。 描画領域の取得 グラフィックの描画領域は、右上の点を(0,0)として右に向かってx座標の値が、下に向かってy座標の値が増えていきます。 Viewクラスの描画領域を取得するには、getWidthメソッドとgetHeightメソッドを使って取得できます。 SurfaceViewの描画領域も、Viewクラスのサブクラスですので、同じように取得できます。 Canvasクラスにも、getWidthメソッドとgetHeightメソッドがありますが、こちらはWindowのタイトルバーも含めた領域となるようです。 Canvasクラスにも、getWidthメソッドとgetHeightメソッドがあります。 また、View#onSizeChangedメソッドをオーバライトすると、

  • レイアウト(9)-RelativeLayout(相対的位置にウィジェットの配置)をマスターする。 - 愚鈍人

    RelativeLayoutは、名前のとおり相対的にウィジェットの配置をおこなうレイアウトである。 このレイアウトを調べていて、相対位置を指定するパラメータがいろいろとあって、違いを把握するのに苦労してしまった。 パラメータはいろいろとあるのだが、「何に対して相対的なのか?」,「上下の位置関係は?」,「左右の位置関係は?」 を、分類してみるとわかりやすくなるように思う。 親ウィジェットに対する相対位置を指定する 以下のパラメータを使って、親ウィジェットに対する相対位置を指定して、ウィジェットの配置をおこなうことができる。 横軸の位置を指定するパラメーター。 左側に配置:layout_alignParentLeft 中央に配置:layout_centerHorizontal 右側に配置:layout_alignParentRight 縦軸の位置を指定するパラメーター。 上側に配置:layou

    レイアウト(9)-RelativeLayout(相対的位置にウィジェットの配置)をマスターする。 - 愚鈍人
  • ダイアログは永遠に(1) - AlertDialog - 愚鈍人

    ダイアログのはじめのいっぽとして、使いやすく,機能も豊富なAlertDialogを表示してみる。 はじめてのダイアログ まずは、簡単なAlertDialogのサンプルを示す。 このプログラムを実行して、「ダイアログの表示」ボタンを押すと、以下のように表示される。 AlertDialogのコンストラクタは、protected宣言されていて直接コントラクタを使って、インスタンスを生成する事はできない AlertDialogを使うには、AlertDialog.Builderクラスのインスタンスを生成して、このビルダークラスよりアクセスする。 AlertDialog.Builderクラスのコンストラクタの引数には、通常,親となるActivityクラスのインスタンスを指定する。 25行目のAlertDialog.Builderクラスのコンストラクタの引数である「AlertDialogSample.t

    ダイアログは永遠に(1) - AlertDialog - 愚鈍人
  • ダイアログは永遠に(2) - ダイアログとアクティビティ - 愚鈍人

    今回は、ダイアログクラス全般についての話題を。 も~っと素直に,も~っと自由に、そのままのDialogクラスでいて AlertDialogクラスではなく、AlertDialogクラスのスーパクラスであるDialogクラス そのもの使って、ダイアログを表示する事もできる。 前回、AlertDialogによって実装した「カスタムダイアログを表示」のサンプルをDialogクラスを使って実現してみる。 プログラムは以下のようになる。 ダイアログのレイアウト用のxmlファイルは、前回と同じものをそのまま使っている。 AlertDialogと異なり、setViewメソッドのかわりにsetContentViewメソッドを使って、 アクティビティのようにコンテンツビューに、Viewオブジェクトを指定する。 AlertDialogクラスは、 安直に使う事ができるダイアログであったが、ビルダークラスを使う事が

    ダイアログは永遠に(2) - ダイアログとアクティビティ - 愚鈍人
  • 画面遷移 - 愚鈍人

    アクティビティより、別のアクティビティへ画面遷移する事ができる。 画面遷移をおこなうには、インテント(Intent)オブジェクトに画面の遷移情報を設定して、startActivityメソッドを実行する。 また、遷移先からの結果情報を取得したい場合には、startActivityメソッドのかわりにstartActivityForResultメソッドを使う。 Intentオブジェクトはいろいろな使い方ができますが、今回は画面遷移が目的ですので、それについてはふれない事にします。 Intentについては「謎めいたインテント」も参照して下さい。 単純な画面遷移の例 画面遷移を単純に実行するだけの、プログラムの例をみてみます。 このプログラムを実行すると、タイトルが「メイン・アクティビティ」であるアクティビティ画面が表示されます。 「画面遷移」ボタンを押すと、タイトルが「サブ・アクティビティ」のアク

    NSTanechan
    NSTanechan 2013/03/22
    「getIntExtraメソッドの第2引数には、対応するキーが存在しないときの戻り値を指定」
  • 1