Androidの勉強をしていこう


仕事で簡単なAndroidアプリを作って、どうせならもう少ししっかりと勉強しようと思ったので、わかった事を少しずつまとめて行きたいと思います。

ソースの中でビュー(ボタン)の大きさを変更する


まずはビューのひとつ、ボタンのサイズ変更を行うには

  • layoutのxmlファイルに記載する時に、「android:layout_width」や「android:layout_heigh」を「wrap_content」にする
  • setWidthやsetHeightでサイズを指定する。

を行う事で実現可能。

勉強時にwrap_contentではなく、200dpなどの固定値で書いていた為、サイズが変わらずに何でだ?となりました。
また「fill_parent」で記載しても最大サイズとなる為、setWidthでサイズが変更出来ません。

サンプルはこんな感じ
[java]
public class BtnTest extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button Btn01;

/* ボタンビューのIDを取得 */
Btn01 = (Button) findViewById(R.id.Btn01);
/* テキスト設定 */
Btn01.setText("200×200");
/* ボタンサイズの設定 */
Btn01.setWidth(200);
Btn01.setHeight(200);
}
}
[/java]

findViewByIdでボタンビューのIDを取得し、そこに「setWidth」でサイズを記載する。
ソースでなくxmlファイルで設定するには「wrap_content」ではなく、200dpと書けばOK。

画面一杯にボタンを表示する方法

続いては、画面一杯にボタンを表示してみます。

画面一杯にボタンを表示するには

  • タスクバーとステータスバーを表示しない
  • 画面サイズを取得する

を行う事で実現可能。

サンプルはこんな感じ
[java]
public class BtnTest extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

/* タスクバーを削除 */
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
/* ステータスバーを削除 */
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

setContentView(R.layout.main);

/* Windowサイズ取得 */
WindowManager windowmanager = (WindowManager)getSystemService(WINDOW_SERVICE);
Display disp = windowmanager.getDefaultDisplay();
int width = disp.getWidth();
int height = disp.getHeight();

Button Btn01;

/* ボタンビューのIDを取得 */
Btn01 = (Button) findViewById(R.id.Btn01);
/* テキスト設定 */
Btn01.setText("fullxfull");
/* ボタンサイズの設定 */
Btn01.setWidth(width);
Btn01.setHeight(height);
}
}
[/java]

タスクバーを削除するには

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

ステータスバーを削除するには

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

画面のサイズを取得するには

WindowManager windowmanager = (WindowManager)getSystemService(WINDOW_SERVICE);
Display disp = windowmanager.getDefaultDisplay();
int width = disp.getWidth();
int height = disp.getHeight();

getWidthで画面横のサイズ、getHeightで画面縦のサイズを取得できる。


Tags:

Leave a Reply