国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android編程實現自定義系統菜單背景的方法

2020-04-11 11:03:07
字體:
來源:轉載
供稿:網友

本文實例講述了Android編程實現自定義系統菜單背景的方法。分享給大家供大家參考,具體如下:

不多說,上圖,見代碼。

package lab.sodino.menutest;import android.content.Context;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.util.AttributeSet;import android.view.InflateException;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuInflater;import android.view.MenuItem;import android.view.View;import android.widget.Toast;/** * @author Sodino E-mail:sodinoopen@hotmail.com * @version Time:2011-1-26 下午04:42:04 */public class MenuAct extends Activity {  @Override  public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.main);  }  public boolean onCreateOptionsMenu(Menu menu) {    super.onCreateOptionsMenu(menu);    MenuInflater inflater = new MenuInflater(getApplicationContext());    inflater.inflate(R.menu.menu, menu);    setMenuBackground();    return true;  }  public boolean onOptionsItemSelected(MenuItem item) {    String info = "";    switch (item.getItemId()) {    case R.id.menu_add:      info = "Add";      break;    case R.id.menu_delete:      info = "Delete";      break;    case R.id.menu_home:      info = "Home";      break;    case R.id.menu_help:      info = "Help";      break;    default:      info = "NULL";      break;    }    Toast toast = Toast.makeText(this, info, Toast.LENGTH_SHORT);    toast.show();    return super.onOptionsItemSelected(item);  }  // 關鍵代碼為重寫Layout.Factory.onCreateView()方法自定義布局  protected void setMenuBackground() {    MenuAct.this.getLayoutInflater().setFactory(new android.view.LayoutInflater.Factory() {      /**       * name - Tag name to be inflated.<br/>       * context - The context the view is being created in.<br/>       * attrs - Inflation attributes as specified in XML file.<br/>       */      public View onCreateView(String name, Context context, AttributeSet attrs) {        // 指定自定義inflate的對象        if (name.equalsIgnoreCase("com.android.internal.view.menu.IconMenuItemView")) {          try {            LayoutInflater f = getLayoutInflater();            final View view = f.createView(name, null, attrs);            new Handler().post(new Runnable() {              public void run() {                // 設置背景圖片                view.setBackgroundResource(R.drawable.menu_background);              }            });            return view;          } catch (InflateException e) {            e.printStackTrace();          } catch (ClassNotFoundException e) {            e.printStackTrace();          }        }        return null;      }    });  }}

/res/menu/menu.xml

<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android">  <item android:id="@+id/menu_add" android:title="Add" android:icon="@drawable/menu_add"></item>  <item android:id="@+id/menu_delete" android:title="Delete" android:icon="@drawable/menu_delete"></item>  <item android:id="@+id/menu_home" android:title="Home" android:icon="@drawable/menu_home"></item>  <item android:id="@+id/menu_help" android:title="Help" android:icon="@drawable/menu_help"></item></menu>

希望本文所述對大家Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 梓潼县| 花莲县| 茂名市| 舞钢市| 永城市| 和硕县| 南涧| 丹凤县| 寿宁县| 老河口市| 东明县| 永胜县| 永平县| 三原县| 牟定县| 平顶山市| 天门市| 连山| 乌什县| 三门峡市| 武山县| 湘阴县| 威信县| 普兰县| 鄱阳县| 兴业县| 永登县| 清水县| 安阳市| 诏安县| 顺昌县| 阳春市| 鞍山市| 江阴市| 龙海市| 新田县| 新野县| 安义县| 泸溪县| 东平县| 龙海市|