編輯:關於Android編程
1.重寫Activity的onCreateOptionsMenu(Menu menu)方法,在該方法裡調用Menu對象的方法來添加菜單項或子菜單。
2.如果希望應用程序能響應菜單項的單擊事件,重寫Activity中的onOptionsItemSelected(MenuItem item)方法即可。
MainActivity.java
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } //Options菜單 @Override public boolean onCreateOptionsMenu(Menu menu) { //通過Activity得到填充Menu的填充器 getMenuInflater().inflate(R.menu.main, menu); /**給Option添加item * 參數1:分組的ID * 參數2:該item的ID * 參數3:添加順序,從0開始 * 參數4:item顯示的文本*/ menu.add(Menu.NONE, 1, 0, 0); menu.add(Menu.NONE, 2, 2, 2); menu.add(Menu.NONE, 4, 5, 5); SubMenu subMenu = menu.addSubMenu(我還能點); subMenu.add(Menu.NONE, 3, 6, 我是一個子選項); //返回true顯示菜單,返回false隱藏菜單 return true; } //給Option添加事件監聽 @Override public boolean onOptionsItemSelected(MenuItem item) {//按下menu鍵觸發該方法 switch (item.getItemId()) { case R.id.d: Toast.makeText(this, d, 0).show(); break; case R.id.dmxy: Toast.makeText(this, dmxy, 0).show(); break; case R.id.dom: Toast.makeText(this, dom, 0).show(); break; case 2: Toast.makeText(this, 2, 0).show(); break; default: break; } return super.onOptionsItemSelected(item); } }
根節點必須為menu才能夠正確的解析。上述可以看出來,order是指添加完事,放在哪個位置的一個排序:不寫默認是第一個(兩個都不寫按照XML先後順序),XML和Java代碼中順序相同則先加載XML的。其余的按照升序排序。
效果圖:
1.重寫Activity的onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)方法
2.調用Activity的registerForContextMenu(View view)方法給view組件注冊上下文菜單。
3.如果系統事件能為菜單項提供響應,可以重寫onContextItemSelected(MenuItem item)方法,或為指定菜單項綁定事件監聽器。
MainActivity.java
public class MainActivity extends Activity { private Button b; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); b = (Button) findViewById(R.id.btn); registerForContextMenu(b); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { menu.add(Menu.NONE, 1, 1, 紅色); menu.add(Menu.NONE, 2, 2, 藍色); menu.add(Menu.NONE, 3, 3, 綠色); menu.add(Menu.NONE, 4, 4, 紫色); //給這四個菜單項設置為單選的 menu.setGroupCheckable(0, true, true); //設置上下文的標題和圖標 menu.setHeaderIcon(R.drawable.ic_launcher); menu.setHeaderTitle(選擇背景色); super.onCreateContextMenu(menu, v, menuInfo); } @Override public boolean onContextItemSelected(MenuItem item) { // TODO Auto-generated method stub return super.onContextItemSelected(item); } }上下文菜單需要長按才能夠觸發。
效果圖:
1.調用new PopupMenu(Context context, View anchor)創建下拉菜單,android代表要激活該組件彈出菜單的組件。
2.調用PopupMenu的inflate()方法顯示彈出式菜單
3.調用PopupMenu的show()方法顯示彈出式菜單
MainActivity.java
public class MainActivity extends Activity { private Button b; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); b = (Button) findViewById(R.id.btn); } public void btn(View view) { // 創建PopupMenu對象 PopupMenu menu = new PopupMenu(this, b); // 將菜單的XML資源文件加載到popup菜單中 getMenuInflater().inflate(R.menu.popup_menu, menu.getMenu()); // 添加事件監聽 menu.setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.add: Toast.makeText(MainActivity.this, 添加, 0).show(); break; case R.id.del: Toast.makeText(MainActivity.this, 刪除, 0).show(); break; } return false; } }); menu.show(); } }popup_menu.xml
彈出式菜單單擊即可。
總結:
1.選項菜單order是由數值來決定的,越小越靠前,不給定數值在最前面。手機按鍵menu和右上角都可以打開選項菜單
2.上下文菜單需要長按才能夠觸發
3.彈出式菜單需要單擊即可觸發
前兩者都在Activity中重寫方法實現的,後者是需要Context參數即可實現。
功能本人之前也介紹過,但是這裡轉載,是因為這個版本是Opengl實現的,大家可以看一下,也可以順便學習一下Opengl。Opengl 實現徑向模糊,可用於實現放射性效果:
1、什麼是popWindow? popWindow就是對話框的一種方式!此文講解的android中對話框的一種使用方式,它叫popWindow。 2、popWindow的
android繪制圓形圖片的兩種方式看下效果先下面有完整的示例代碼使用BitmapShader(著色器)我們在繪制view 的時候 就是小學上美術課 用水彩筆在本子上畫畫
android root權限破解分析許多機友新購來的Android機器沒有破解過Root權限,無法使用一些需要高權限的軟件,以及進行一些高權限的操作,其實破解手機Root