iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android studio实现菜单效果
  • 848
分享到

Android studio实现菜单效果

2024-04-02 19:04:59 848人浏览 安东尼
摘要

本文实例为大家分享了Android studio实现菜单效果的具体代码,供大家参考,具体内容如下 一、onCreateOptionsMenu() 首先在res目录下新建一个menu文

本文实例为大家分享了Android studio实现菜单效果的具体代码,供大家参考,具体内容如下

一、onCreateOptionsMenu()

首先在res目录下新建一个menu文件夹,右击res目录→New→ Directory,输入文件夹名字menu(随意),点击OK,接着在menu文件夹下面新建一个main的菜单文件。点击menu文件夹new→menu resource file。
activity.xml文件代码不需要改动。

MainActivity.java 文件代码:


package com.example.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    //用onCreateOptionsMenu()显示菜单
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu,menu);//getMenuInflater()方法得到MenuInflater
        //调用inflate接收两个参数
        //R.menu.main指调用menu文件下的main资源文件
        return true;//返回true,允许创建的菜单显示,返回false不显示
    }
    //定义菜单响应事件
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()){   //item.getItemId()判断我们选择那个菜单项
            case R.id.first:
                Toast.makeText(this, "FIRST", Toast.LENGTH_SHORT).show();
                break;
            case R.id.second:
                Toast.makeText(this, "SECOND", Toast.LENGTH_SHORT).show();
                break;
                default:
        }
        return true;
    }
}

关键代码:菜单 main.xml文件代码:


<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="Http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/add_item"
        android:title="ADD">
    </item>
    <item
        android:id="@+id/add_remove"
        android:title="REMOVE">
    </item>
</menu>

右上角三个点就是菜单,点击打开如图:

一的进阶(带子菜单的菜单)

menu.xml:


<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:id="@+id/f1"
    android:title="更换背景">
</item>
<item
    android:id="@+id/f2"
    android:title="参数设置">
    <menu>
        <group
            android:id="@+id/group1"
            android:checkableBehavior="all">
            <item
                android:id="@+id/s1"
                android:title="参数1">
            </item>
            <item
                android:id="@+id/s2"
                android:title="参数2">
            </item>
        </group>
    </menu>
</item>
<item
    android:id="@+id/f3"
    android:title="恢复出厂">
</item>
</menu>

.java:


package com.example.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    //用onCreateOptionsMenu()显示菜单
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater=new MenuInflater(this);//实例化一个MenuInflater对象
        inflater.inflate(R.menu.menu,menu);//解析菜单文件
        return true;
    }
    //定义菜单响应事件
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if(item.getItemId()==R.id.f1)
            Toast.makeText(this, "更换背景", Toast.LENGTH_SHORT).show();
        else if(item.getItemId()==R.id.f3)
            Toast.makeText(this, "恢复出厂", Toast.LENGTH_SHORT).show();
        else
        {
            if(item.getGroupId()==R.id.group1){ //判断是否选中了第一层第二项
                //与menu.xml文件对应 android:checkableBehavior="all"
                if(item.isChecked()) //菜单被选中
                    item.setChecked(false);//设置菜单项不被选中
                else
                    item.setChecked(true);//设置菜单项被选中
            }
        }
        return true;
    }
}

效果:

二、onCreateContextMenu()(上下文菜单)

main.xml:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <TextView
        android:id="@+id/text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="打开菜单:"/>
</LinearLayout>

menu.xml:


<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:id="@+id/red"
    android:title="红色">
</item>
<item
    android:id="@+id/green"
    android:title="绿色">
</item>
<item
    android:id="@+id/blue"
    android:title="蓝色">
</item>

</menu>

.java:


package com.example.myapplication;

import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
    private TextView tv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv=(TextView)findViewById(R.id.text1);
        reGISterForContextMenu(tv);//为文本注册上下文菜单
    }
    //用onCreateContextMenu()显示菜单
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        MenuInflater inflater=new MenuInflater(this);//实例化MenuInflater一个对象
        inflater.inflate(R.menu.menu,menu);//解析菜单文件
        menu.setHeaderTitle("选择颜色:");//为菜单头设置标题
    }
    @Override
    public boolean onContextItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case R.id.red:
                tv.setTextColor(Color.rgb(255,0,0));
                break;
            case R.id.green:
                tv.setTextColor(Color.rgb(0,255,0));
                break;
            default:
                tv.setTextColor(Color.rgb(0,0,255));
        }
        return true;
    }
}

长按打开菜单四个字

随便选择颜色打开菜单四个字就会变为相应的颜色

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Android studio实现菜单效果

本文链接: https://www.lsjlt.com/news/154996.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android studio实现菜单效果
    本文实例为大家分享了Android studio实现菜单效果的具体代码,供大家参考,具体内容如下 一、onCreateOptionsMenu() 首先在res目录下新建一个menu文...
    99+
    2024-04-02
  • Android studio实现菜单操作
    本文实例为大家分享了Android studio实现菜单操作的具体代码,供大家参考,具体内容如下 要求: 1.设置“打开”、“关闭”和“退出”三个菜单项的菜单。 2.当单击“打开“菜...
    99+
    2024-04-02
  • Android Drawerlayout实现侧滑菜单效果
    本文实例为大家分享了Drawerlayout侧滑菜单的具体代码,供大家参考,具体内容如下Drawerlayout的xml布局<?xml version="1.0" encoding="utf-8"?><Re...
    99+
    2023-05-30
    drawerlayout 侧滑菜单 roi
  • Android实现微博菜单弹出效果
    先上Android仿微博菜单弹出效果图,这个截图不是很流畅,大家可以下载apk试一下。 说一下实现思路: 截取当前窗口,对图片做高斯模糊处理,将处理后的图片做popupwindow的背景图片; 2、创建popupwindow,完成...
    99+
    2023-05-30
    android 菜单弹出
  • Android菜单栏DIY实现效果详解
    目录前言实现的效果和思路1. 绘制底部布局2. 添加子view3. 处理事件分发4. 做个动画5. 小结前言 个人打算开发个视频编辑的APP,然后把一些用上的技术总结一下,这次主要是...
    99+
    2024-04-02
  • Android使用DrawerLayout实现侧滑菜单效果
    一、概述DrawerLayout是一个可以方便的实现Android侧滑菜单的组件,我最近开发的项目中也有一个侧滑菜单的功能,于是DrawerLayout就派上用场了。如果你从未使用过DrawerLayout,那么本篇博客将使用一个简单的案例...
    99+
    2023-05-30
    android drawerlayout 侧滑菜单
  • Android卫星菜单效果的实现方法
    Android小白第一次写博客,心情无比激动。下面给大家展示一下卫星菜单的实现。1.简单介绍卫星菜单在应用程序中,有很多展示菜单的方式,但其功能都是大同小异,这样一来,菜单的美观以及展示方式就显的尤为重要,卫星菜单就是很不错的一种。下面是本...
    99+
    2023-05-31
    android 卫星菜单 roi
  • Android中DrawerLayout如何实现侧滑菜单效果
    这篇文章主要为大家展示了“Android中DrawerLayout如何实现侧滑菜单效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Android中DrawerLayout如何实现侧滑菜单效果”...
    99+
    2023-05-30
    drawerlayout android
  • Android Studio实现进度条效果
    本文实例为大家分享了Android Studio实现进度条效果的具体代码,供大家参考,具体内容如下 实验作业 要求一个进度条,进度随机 效果图 xml代码 <?x...
    99+
    2024-04-02
  • Android实现毛玻璃效果弹出菜单动画
    本文实例为大家分享了Android实现毛玻璃效果弹出菜单动画的具体代码,供大家参考,具体内容如下 仿ios上屏幕下方向上滑出来的一个模糊菜单,效果如下 原理很简单,页面上原来有...
    99+
    2022-11-13
    Android毛玻璃效果 Android毛玻璃菜单 Android弹出菜单
  • vue实现下拉菜单效果
    本文实例为大家分享了vue实现下拉菜单效果的具体代码,供大家参考,具体内容如下 下拉菜单主要运用了hover显示与隐藏以及定位的问题 效果图: 可能出现的问题 定位后菜单的div无...
    99+
    2024-04-02
  • vue实现多级菜单效果
    本文实例为大家分享了vue实现多级菜单效果的具体代码,供大家参考,具体内容如下 效果图: 效果说明: 点击父菜单,如果有子菜单就在其左侧显示出子菜单 思路: 通过递归的方式。 代码...
    99+
    2024-04-02
  • javascript实现简单下拉菜单效果
    本文实例为大家分享了 javascript实现简单下拉菜单的具体代码,供大家参考,具体内容如下 效果: 思路:比较复杂的是样式的编写,首先是ul里面含有3个li,每个li...
    99+
    2022-11-13
    js 下拉菜单
  • jquery实现简单下拉菜单效果
    本文用简单的几行jquery代码实现简单的下拉菜单效果,供大家参考,具体内容如下 看效果 html <ul>     <li>       主题市场    ...
    99+
    2024-04-02
  • CSS3 实现分类菜单效果
    这篇文章给大家介绍CSS3 实现分类菜单效果,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。HTML<html><head>    <title>...
    99+
    2023-06-08
  • Android studio实现PopupWindow弹出框效果
    本文实例为大家分享了Android studio实现PopupWindow弹出框的具体代码,供大家参考,具体内容如下 实现步骤: 第一步:自定义.xml布局文件 <?...
    99+
    2024-04-02
  • 基于Android实现可滚动的环形菜单效果
    效果 首先看一下实现的效果: 可以看出,环形菜单的实现有点类似于滚轮效果,滚轮效果比较常见,比如在设置时间的时候就经常会用到滚轮的效果。那么其实通过环形菜单的表现可以将其看作是一个...
    99+
    2024-04-02
  • Android Studio怎么实现进度条效果
    小编给大家分享一下Android Studio怎么实现进度条效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Android是什么Android是一种基于Linu...
    99+
    2023-06-14
  • jquery怎么实现简单下拉菜单效果
    本文小编为大家详细介绍“jquery怎么实现简单下拉菜单效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“jquery怎么实现简单下拉菜单效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。看效果html<...
    99+
    2023-06-30
  • CSS3怎么实现菜单悬停效果
    这篇文章主要讲解了“CSS3怎么实现菜单悬停效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS3怎么实现菜单悬停效果”吧!实现效果:html<nav id="...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作