Android 自定義精美界面包含選項(xiàng)菜單 上下文菜單及監(jiān)聽詳解流程
先放實(shí)現(xiàn)結(jié)果
activity_main.xml、main_menu.xml和main.xml設(shè)計(jì)界面完成如下:
MainActivity.java運(yùn)行結(jié)果、長(zhǎng)按選擇英雄和長(zhǎng)按選擇銘文結(jié)果如下:
目錄 需要在menu下創(chuàng)建如下文件,把圖片插入drawable
activity_main.xml源碼
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@drawable/jks1" tools:context="com.example.a86189.threesz1.MainActivity"> <TextView android:layout_width="match_parent" android:layout_height="80dp" android:layout_marginTop="10dp" android:textColor="#29ef7f" android:text="請(qǐng)點(diǎn)擊界面右上角選項(xiàng)菜單查看英雄簡(jiǎn)介" android:textSize="25sp" android:background="@drawable/jks" /> <Button android:id="@+id/hero" android:text="長(zhǎng)按選擇英雄" android:textColor="#fa3729" android:layout_marginTop="300dp" android:background="@drawable/tm" android:layout_gravity="center" android:layout_width="200dp" android:layout_height="50dp" /> <Button android:id="@+id/inscription" android:text="長(zhǎng)按選擇銘文" android:textColor="#fa3729" android:background="@drawable/tm" android:layout_gravity="center_horizontal" android:layout_marginTop="25dp" android:layout_width="200dp" android:layout_height="50dp" /> </LinearLayout>
main.xml源碼
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/warrior" android:title="戰(zhàn)士"> <menu> <item android:id="@+id/nuoshou" android:title="諾克薩斯之手"/> <item android:id="@+id/manwang" android:title="蠻族之王"/> <item android:id="@+id/huangzi" android:title="德瑪西亞皇子"/> <item android:id="@+id/jiansheng" android:title="無極劍圣"/> </menu> </item> <item android:id="@+id/thug" android:title="刺客"> <menu> <item android:id="@+id/jie" android:title="劫"/> <item android:id="@+id/tanglang" android:title="虛空掠奪者"/> <item android:id="@+id/akali" android:title="阿卡麗"/> </menu> </item> <item android:id="@+id/ADC" android:title="射手"> <menu> <item android:id="@+id/kasha" android:title="卡莎"/> <item android:id="@+id/weien" android:title="薇恩"/> <item android:id="@+id/hanbing" android:title="寒冰射手"/> </menu> </item> </menu>
main_menu.xml
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <group android:id="@+id/yx"> <item android:id="@+id/ns" android:title="諾克薩斯之手"/> <item android:id="@+id/mw" android:title="蠻族之王"/> <item android:id="@+id/hz" android:title="德瑪西亞皇子"/> <item android:id="@+id/js" android:title="無極劍圣"/> <item android:id="@+id/j" android:title="劫"/> <item android:id="@+id/tl" android:title="虛空掠奪者"/> <item android:id="@+id/akl" android:title="阿卡麗"/> <item android:id="@+id/ks" android:title="卡莎"/> <item android:id="@+id/we" android:title="薇恩"/> <item android:id="@+id/hb" android:title="寒冰射手"/> </group> <group android:id="@+id/fw"> <item android:id="@+id/zz" android:title="主宰"/> <item android:id="@+id/qd" android:title="啟迪"/> <item android:id="@+id/jj" android:title="堅(jiān)決"/> <item android:id="@+id/ws" android:title="巫術(shù)"/> <item android:id="@+id/jm" android:title="精密"/> </group> </menu>
MainActivity.java源碼
package com.example.a86189.threesz1; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.ContextMenu; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import android.view.ContextMenu.ContextMenuInfo; public class MainActivity extends AppCompatActivity { private Button Hero,Inscription; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Hero= (Button) findViewById(R.id.hero); Inscription= (Button) findViewById(R.id.inscription); registerForContextMenu(Hero); registerForContextMenu(Inscription); } @Override public void onCreateContextMenu(ContextMenu menu,View v,ContextMenu.ContextMenuInfo menuInfo) { getMenuInflater().inflate(R.menu.main_menu,menu); super.onCreateContextMenu(menu,v,menuInfo); } @Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()){ case R.id.ns: toast("選擇了諾手"); break; case R.id.mw: toast("選擇了蠻王"); break; case R.id.hz: toast("選擇了皇子"); break; case R.id.js: toast("選擇了劍圣"); break; case R.id.j: toast("選擇了劫"); break; case R.id.tl: toast("選擇了螳螂"); break; case R.id.akl: toast("選擇了阿卡麗"); break; case R.id.ks: toast("選擇了諾手卡莎"); break; case R.id.we: toast("選擇了薇恩"); break; case R.id.hb: toast("選擇了寒冰"); break; case R.id.zz: toast("選擇了主宰"); break; case R.id.qd: toast("選擇了啟迪"); break; case R.id.jj: toast("選擇了堅(jiān)決"); break; case R.id.ws: toast("選擇了巫術(shù)"); break; case R.id.jm: toast("選擇了精密"); break; } return super.onContextItemSelected(item); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main,menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id =item.getItemId(); switch (id){ case R.id.warrior: toast("單擊了戰(zhàn)士"); break; case R.id.thug: toast("單擊了刺客"); break; case R.id.ADC: toast("單擊了射手"); } return super.onOptionsItemSelected(item); } public void toast(String str) { Toast.makeText(MainActivity.this,str,Toast.LENGTH_LONG).show(); } }
到此這篇關(guān)于Android 自定義精美界面包含選項(xiàng)菜單 上下文菜單及監(jiān)聽詳解流程的文章就介紹到這了,更多相關(guān)Android 自定義界面內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android使用kotlin實(shí)現(xiàn)多行文本上下滾動(dòng)播放
這篇文章主要為大家詳細(xì)介紹了Android使用kotlin實(shí)現(xiàn)多行文本的上下滾動(dòng)播放,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01Android實(shí)現(xiàn)app開機(jī)自啟動(dòng)功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)app開機(jī)自啟動(dòng)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05Android模仿實(shí)現(xiàn)微博詳情頁滑動(dòng)固定頂部欄的效果實(shí)例
這篇文章主要給大家介紹了關(guān)于利用Android模仿實(shí)現(xiàn)微博詳情頁滑動(dòng)固定頂部欄效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11Android 指紋識(shí)別詳解及實(shí)現(xiàn)方法
本文主要介紹Android 指紋識(shí)別的知識(shí),這里整理了詳細(xì)的資料和簡(jiǎn)單實(shí)現(xiàn)代碼,有開發(fā)這部分的朋友可以參考下2016-09-09Android自定義Span實(shí)現(xiàn)文字漸變效果
Android提供一些Span設(shè)置文本樣式外,開發(fā)者若希望實(shí)現(xiàn)一些新特性也是能自定義開發(fā)實(shí)現(xiàn)的。本文就將自定義Span實(shí)現(xiàn)文字漸變效果,感興趣的可以嘗試一下2022-06-06Android Camera實(shí)現(xiàn)毫秒級(jí)拍照實(shí)例
本篇文章主要介紹了Android Camera實(shí)現(xiàn)毫秒級(jí)拍照實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-06-06Android仿微信朋友圈全文、收起功能的實(shí)例代碼
本篇文章主要介紹了Android仿微信朋友圈全文、收起功能的實(shí)例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08android使用viewpager計(jì)算偏移量實(shí)現(xiàn)選項(xiàng)卡功能
這篇文章主要為大家詳細(xì)介紹了android使用viewpager計(jì)算偏移量實(shí)現(xiàn)選項(xiàng)卡功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12Android實(shí)現(xiàn)水波紋擴(kuò)散效果的實(shí)例代碼
這篇文章主要介紹了Android實(shí)現(xiàn)水波紋擴(kuò)散效果的實(shí)例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05Android中編寫屬性動(dòng)畫PropertyAnimation的進(jìn)階實(shí)例
這篇文章主要介紹了Android中編寫屬性動(dòng)畫PropertyAnimation的進(jìn)階實(shí)例,包括一些縮放和淡入淡出效果的設(shè)計(jì),強(qiáng)大且不算復(fù)雜,需要的朋友可以參考下2016-04-04