2012年03月08日

ステータスバーを非表示にする


アクティビティのステータスバーを表示しないようにするには
getWindow().addFlags
(WindowManager.LayoutParams.FLAG_FULLSCREEN)

を使用します
package blog.test;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.WindowManager;

 
public class TestActivity extends Activity {

	@Override
	public void onCreate(Bundle savedInstanceState) {
	    super.onCreate(savedInstanceState);
	    setContentView(R.layout.main);
	    // ステータスバー削除  
	    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
	}

}
device36.png
このようにステータスバーが見えなくなります

タイトルバーも非表示にするとフルスクリーンになります
タイトルバーを非表示にする
そちらのプログラムコードも載せておきます
package blog.test;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;

 
public class TestActivity extends Activity {

	@Override
	public void onCreate(Bundle savedInstanceState) {
	    super.onCreate(savedInstanceState);
	    //タイトルバー削除
        requestWindowFeature(Window.FEATURE_NO_TITLE);
	    setContentView(R.layout.main);
	    // ステータスバー削除  
	    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
	}

}
device37.png
このようにフルスクリーンモードになります
(わかりにくいので文字を入れました)
スポンサードリンク

posted by kenken at 17:30 | Comment(0) | TrackBack(0) | レイアウト 表示 | このブログの読者になる | 更新情報をチェックする

タイトルバーを非表示にする


アクティビティのタイトルバーを表示しないようにするには
requestWindowFeature(Window.FEATURE_NO_TITLE)を使います
注意する点はsetContentViewを実行する前でないと効果がありません
package blog.test;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;

 
public class TestActivity extends Activity {

	@Override
	public void onCreate(Bundle savedInstanceState) {
	    super.onCreate(savedInstanceState);
	    requestWindowFeature(Window.FEATURE_NO_TITLE);
	    setContentView(R.layout.main);
	}

}
device35.png
このようにタイトルバーが見えなくなります

スポンサードリンク

posted by kenken at 16:14 | Comment(0) | TrackBack(0) | レイアウト 表示 | このブログの読者になる | 更新情報をチェックする

メニューを動的にカスタマイズする


オプションメニューを状況に合わせて変化させたいと思います
まずはxmlでオプションメニューを2つ追加します
xmlリソースファイルでメニューを作成する
今回はitem1とitem2を設置しました
xmlファイルは
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/item1" android:visible="true" android:enabled="true" android:title="item1" android:icon="@android:drawable/ic_menu_search"></item>
    <item android:id="@+id/item2" android:title="item2" android:visible="true" android:enabled="true" android:icon="@android:drawable/ic_menu_rotate"></item>
</menu>

次にjavaソースですがmenuを作成するときは
onCreateOptionsMenuを使用しました
これはmenuが表示されるとき初回のみ実行されます
表示ごとに変更したい場合は
onPrepareOptionsMenuを使用します
これは表示される毎に実行されるためメニュー内容を動的に変更することができます
今回は初回表示時は2つのオプションメニューが表示されますがitem1を押すと
swがfalseに変化しitem1が非表示に、item2が選択不可になっています
package blog.test;
 
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;

 
public class TestActivity extends Activity {
boolean sw;
	@Override
	public void onCreate(Bundle savedInstanceState) {
	    super.onCreate(savedInstanceState);
	    sw=true;//swの初期状態を設定
	}

	
	//オプションメニューを追加
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		super.onCreateOptionsMenu(menu);
		MenuInflater inflater = getMenuInflater();
		inflater.inflate(R.menu.menu, menu);
		return true;
	}
	/**onPrepareOptionsMenu は MENU ボタンを押したときに呼ばれる(毎回)**/
	@Override
	public boolean onPrepareOptionsMenu(Menu menu){
			if(sw ==false){
			//item1を非表示にitem2を選択不能にします
			menu.findItem(R.id.item1).setVisible(false);
			menu.findItem(R.id.item2).setEnabled(false);
			}
		return true;
	}
	

	/**onOptionsItemSelected はメニュー項目を選択した時に自動的に呼ばれる**/
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		switch(item.getItemId()){
		/**item1を押したとき**/
		case R.id.item1:
			Log.i("tag","item1が押されました");
			sw=false;
			return true;
		}
		return false;
	}

}
setVisible(false)で非表示に(trueで表示)
setEnabled(false)で選択不可(trueで選択可能)にしています

最初は2つのitemが表示されますが・・・
device33.png
item1を押すと・・・・
device34.png
このように変化します

また今回は使用していませんがOptionsMenu関連メソッドは以下の通りです
public void closeOptionsMenu()
メニューを閉じます(閉じられていれば何もしません)

public boolean onCreateOptionsMenu(Menu menu)
メニュー生成時に呼び出されます(初回のみ)

public boolean onOptionsItemSelected(MenuItem item)
メニュー項目を通知します

public boolean onPrepareOptionsMenu(Menu menu)
メニューが表示される前に呼ばれます(毎回)

public void onOptionsMenuClosed (Menu menu)
メニューを閉じるときに呼ばれます(毎回)

public void openOptionsMenu()
メニューを開きます(開かれていたら何もしません)
スポンサードリンク

posted by kenken at 13:47 | Comment(0) | TrackBack(0) | ウィジェット メニュー | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。