Android popu菜单

本文介绍如何在Android中创建自定义弹出菜单,包括创建、监听和显示菜单的过程,以及如何通过菜单调整应用界面元素的样式。

popu 菜单构建与contextMenu 菜单以及 optionsMenu 菜单略微不同

使用步骤为
① 创建popu 对象
② 设置监听
③ 调用popu的show() 方法

package com.example.gp11_day12_popupmenu;

import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.graphics.Color;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.PopupMenu;
import android.widget.PopupMenu.OnMenuItemClickListener;
import android.widget.TextView;

public class MainActivity extends Activity {

private TextView textView;
private float fontSize = 20f;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    textView = (TextView) findViewById(R.id.textView);
    textView.setTextSize(fontSize);
}
//当点击按钮时显示弹出菜单
@SuppressLint("NewApi")
public void showMenu(View v)
{
    //创建弹出菜单
    //第二个参数接收的是一个视图对象,作用是指定弹出菜单显示的参考位置
    PopupMenu pop = new PopupMenu(this, v);
    //生成菜单项对象并加入到弹出菜单中
    getMenuInflater().inflate(R.menu.main, pop.getMenu());
    //给菜单添加事件监听
    pop.setOnMenuItemClickListener(new OnMenuItemClickListener() {

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            int id = item.getItemId();
            switch(id)
            {
            case R.id.action_bigFont:
                fontSize +=5;
                textView.setTextSize(fontSize);
                break;
            case R.id.action_smallFont:
                fontSize -=5;
                textView.setTextSize(fontSize);
                break;
            case R.id.action_bgColor:
                int red = (int)(Math.random()*256);
                int green = (int)(Math.random()*256);
                int blue = (int)(Math.random()*256);

                textView.setBackgroundColor(Color.rgb(red, green, blue));
                break;
            }
            return false;
        }
    });
    //显示弹出菜单
    pop.show();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值