LinearLayoutで画面を描画してみる[androidアプリ開発]
前回はテキストを表示するのにTextViewクラスを使いました。
はっきり言ってまだまだぜんぜん意味不明だけど、LinearLayoutクラスを使って画面を描画してみよう(´・ω・`)
LinearLayoutクラスは解説を見ると「縦または横方向にビューを配していくレイアウト」って書いてある。とりあえず画面描画のクラスっぽい。
まずはクラスの追加から。
前回のドロイド君プログラムの一部を書き換える。
super.onCreate(savedInstanceState);
LinearLayout screen = new LinearLayout(this);
onCreateクラス以降にLinerLayoutを追加。
変数名?は画面をあらわすscreenとでも定義しておこう。
LinearLayoutに波線が出るのでctrl+スペースでimport。
ちなみにonCreateというのはそこからプログラムの動作がスタートするよというような呪文っぽい。アプリケーション中で一度しか使えないとか(例外があって、強制終了のときに使えるとかなんとか)。
つぎにこのscreenに対して、背景色をしていしてみる。
screen.setBackgroundColor(Color.WHITE);
Colorをimportしろと言ってくるのでインポートする。
Eclipseはこういう入力補助をしてくれるので便利。
で、Viewクラスを追加して四角を描いてみよう。
View box = new View(this);
四角なので名称はBoxに。
box.setBackgroundColor(Color.RED);
色は赤にしよう。
box.setLayoutParams(new LayoutParams(100,100));
サイズも決める。100x100くらいに。
今作ったboxをさっきのscreenに加えてみる。
screen.addView(box);
こんな感じ。
最後にscreenの中身を表示。
setContentView(screen);
実行してみる(´・ω・`)
今回のソースpackage jp.ne.so_net.blog.androp.hellodroid; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.widget.LinearLayout; public class Hellodroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout screen = new LinearLayout(this); screen.setBackgroundColor(Color.WHITE); View box = new View(this); box.setBackgroundColor(Color.RED); box.setLayoutParams(new LayoutParams(100,100)); screen.addView(box); setContentView(screen); } }
実際にはxmlでレイアウトを作成することがほとんどだし、画面の描画もonDrawを使うそうなのでこんな風にボックスを書いたりすることはまずないみたい。
コメント 0