欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android編程實現(xiàn)自定義系統(tǒng)菜單背景的方法

 更新時間:2016年01月06日 16:09:23   作者:Sodino  
這篇文章主要介紹了Android編程實現(xiàn)自定義系統(tǒng)菜單背景的方法,涉及Android菜單menu的實現(xiàn)及背景圖片的相關(guān)操作技巧,需要的朋友可以參考下

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

不多說,上圖,見代碼。

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);
  }
  // 關(guān)鍵代碼為重寫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程序設計有所幫助。

相關(guān)文章

  • Android實現(xiàn)QQ新用戶注冊界面遇到問題及解決方法

    Android實現(xiàn)QQ新用戶注冊界面遇到問題及解決方法

    這篇文章主要介紹了Android實現(xiàn)QQ新用戶注冊界面遇到問題及解決方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • Android WebView的詳解及實例

    Android WebView的詳解及實例

    這篇文章主要介紹了Android WebView的詳解及實例的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Android自定義Banner輪播效果

    Android自定義Banner輪播效果

    這篇文章主要為大家詳細介紹了Android自定義Banner輪播效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Android快速分析apk工具aapt的使用教程

    Android快速分析apk工具aapt的使用教程

    這篇文章主要介紹了Android快速分析apk工具aapt的使用教程,本文講解了什么是aapt、主要用法、使用aapt、查看apk的基本信息、查看基本信息、查看應用權(quán)限等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • Android Service服務詳細介紹及使用總結(jié)

    Android Service服務詳細介紹及使用總結(jié)

    這篇文章主要介紹了Android Service 服務的詳細資料,網(wǎng)上關(guān)于Android Service 服務的文章比較多,但是不是很全面,不夠細致,畢竟是Android 四大組件之一,重要性不用說,這里總結(jié)下,需要的朋友可以參考下
    2016-12-12
  • 基于Android如何實現(xiàn)將數(shù)據(jù)庫保存到SD卡

    基于Android如何實現(xiàn)將數(shù)據(jù)庫保存到SD卡

    有時候為了需要,會將數(shù)據(jù)庫保存到外部存儲或者SD卡中(對于這種情況可以通過加密數(shù)據(jù)來避免數(shù)據(jù)被破解),本文給大家分享Android如何實現(xiàn)將數(shù)據(jù)庫保存到SD卡,對android數(shù)據(jù)庫sd卡相關(guān)知識感興趣的朋友一起學習吧
    2015-12-12
  • android獲取附近藍牙設備并計算距離的實例代碼

    android獲取附近藍牙設備并計算距離的實例代碼

    下面小編就為大家分享一篇android獲取附近藍牙設備并計算距離的實例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • android studio3.0.1無法啟動Gradle守護進程的解決方法

    android studio3.0.1無法啟動Gradle守護進程的解決方法

    這篇文章主要為大家詳細介紹了android studio3.0.1無法啟動Gradle守護進程的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • flutter InheritedWidget使用方法總結(jié)

    flutter InheritedWidget使用方法總結(jié)

    這篇文章主要為大家介紹了flutter InheritedWidget使用方法總結(jié)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Android基于Pull方式解析xml的方法詳解

    Android基于Pull方式解析xml的方法詳解

    這篇文章主要介紹了Android基于Pull方式解析xml的方法,結(jié)合實例形式詳細分析了Pull方式解析xml的原理、操作步驟與相關(guān)技巧,需要的朋友可以參考下
    2016-07-07

最新評論