自定义一个带角标的菜单图标

构建PowerBuilder带图标的自定义右键菜单界面 PowerBuilder 是一个先进的客户端/服务器应用程序开发工具,最初由 Sybase 公司开发,后来并入 SAP。它主要用于开发涉及复杂业务逻辑、数据库访问以及需要丰富用户界面的应用程序。PowerBuilder 提供了可视化的设计环境,允许开发者通过拖放的方式快速构建用户界面。它支持多种数据库系统,并具备强大的数据窗口对象(DataWindow)技术,这使得数据操作变得直观且高效。在应用程序内部,开发者可以创建自定义的右键菜单,以提高特定上下文中的工作效率。 阅读详情

加粗样式带角标的菜单图标

在这里插入图片描述

创建一个自定义xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical">

    <FrameLayout
        android:id="@+id/frameLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <ImageView
            android:id="@+id/nav_iv_icon"
            android:layout_width="25dp"
            android:layout_height="25dp"
            android:layout_gravity="center_horizontal"
            android:contentDescription="@string/app_name"
            android:paddingLeft="@dimen/lay_2"
            android:paddingRight="@dimen/lay_2"
            android:paddingTop="@dimen/lay_2"
            android:scaleType="fitCenter"
            android:src="@drawable/tab_icon_new" />

        <TextView
            android:id="@+id/nav_tv_dot"
            android:layout_width="wrap_content"
            android:layout_height="16dp"
            android:layout_gravity="top|center"
            android:layout_marginLeft="@dimen/lay_8"
            android:background="@drawable/ic_red_dot"
            android:gravity="center"
            android:lines="1"
            android:minWidth="14dp"
            android:paddingLeft="5dp"
            android:paddingRight="5dp"
            android:singleLine="true"
            android:textColor="@color/white"
            android:textSize="@dimen/font_10"
            android:visibility="gone"
            tools:text="1"
            tools:visibility="visible" />
    </FrameLayout>

    <TextView
        android:id="@+id/nav_tv_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal|bottom"
        android:layout_marginTop="1dp"
        android:gravity="center"
        android:textColor="@drawable/primarybar_txt"
        android:textSize="12sp"
        tools:text="消息" />

</LinearLayout>

自定义按钮

package com.sanshi.housingAssetsLease.custom.customlayout;

import android.content.Context;
import android.os.Build;
import android.support.annotation.DrawableRes;
import android.support.annotation.RequiresApi;
import android.support.annotation.StringRes;
import android.support.v4.app.Fragment;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;

import com.sanshi.housingAssetsLease.R;

public class NavigationButton extends FrameLayout {
    private Fragment mFragment = null;
    private Class<?> mClx;
    private ImageView mIconView;
    private TextView mTitleView;
    private TextView mDot;
    private String mTag;

    public NavigationButton(Context context) {
        super(context);
        init();
    }

    public NavigationButton(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public NavigationButton(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    public NavigationButton(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
        init();
    }

    private void init() {
        LayoutInflater inflater = LayoutInflater.from(getContext());
        inflater.inflate(R.layout.layout_nav_item, this, true);

        mIconView = (ImageView) findViewById(R.id.nav_iv_icon);
        mTitleView = (TextView) findViewById(R.id.nav_tv_title);
        mDot = (TextView) findViewById(R.id.nav_tv_dot);
    }

    public void setSelected(boolean selected) {
        super.setSelected(selected);
        mIconView.setSelected(selected);
        mTitleView.setSelected(selected);
    }

    public void showRedDot(int count) {
        mDot.setVisibility(count > 0 ? VISIBLE : GONE);
        mDot.setText(String.valueOf(count));
    }

    public void init(@DrawableRes int resId, @StringRes int strId, Class<?> clx) {
        mIconView.setImageResource(resId);
        mTitleView.setText(strId);
        mClx = clx;
        mTag = mClx.getName();
    }

    public Class<?> getClx() {
        return mClx;
    }

    public Fragment getFragment() {
        return mFragment;
    }

    public void setFragment(Fragment fragment) {
        this.mFragment = fragment;
    }

    public String getTag() {
        return mTag;
    }

}

使用布局

  <main.customlayout.NavigationButton
            android:id="@+id/nv_index"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center" />
nvInfo.init(R.drawable.main_info_selector, R.string.nv_info, InfoListNewFragment.class);//图标/文字/打开fragment
nvInfo.showRedDot(99);//角标个数
创建带自定义右键菜单的Windows系统托盘图标 本文还有配套的精品资源,点击获取 简介:本开发项目演示了如何在Windows系统托盘区域添加自定义右键菜单功能,通过使用Visual Studio 2008和Win32 API。开发者上传了包含自定义注释的代码至优快云,以便初学者理解和学习实现系统托盘图标及右键菜单。项目涉及的知识点包括Win32 API的使用、消息处理机制、菜单创建与管理、资源管理以及可能用到的MFC库... 阅读详情

相关推荐

为.txt文件添加带图标的自定义右键菜单项VC++实现指南

本文还有配套的精品资源,点击获取 简介:通过ATL COM Shell扩展技术,开发者可以向Windows文件上下文菜单添加自定义菜单项。本指南将详细说明如何为文本文件(.txt)创建一个带有图标的新的菜单项,包括理解ATL、COM Shell扩展、文件关联以及通过实现IShellExtInit和IContextMenu接口在VC++环境中构建和注册Shell扩展的过程。 ...

weixin_34618526的博客 1021

组件-Element---Layout(布局)

组件-Element 组件---按钮: body <el-row> <el-col :span="24"><div class="grid-content bg-purple-dark"></div></el-col> </el-row> <el-row> <el-col :span="12"&gt...

GU_AO_SHI_TAI_DU的博客 676

pro-layout:易于使用的“蚂蚁设计Vue”布局

蚂蚁设计专业版图 安装 # yarn yarn add @ant-design-vue/pro-layout@next # npm npm i @ant-design-vue/pro-layout@next -S 基本用法 首先,应将所需的图标添加到库中。 import 'ant-design-vue/dist/antd.less' ; import { createApp } from 'vue' ; import ProLayout , { PageContainer } from '@ant-design-vue/pro-layout' ; const app = createApp ( ) ; app . use ( ProLayout ) . use ( PageContainer ) . mount ( '#app' ) ; 之后,您可以像下面这样简单地在Vue组件中使用

ProLayout 布局

第一次采用ProLayout的时候也担心会不会不够灵活,比人我需要修改折叠按钮(collapsed)的位置能不能实现,带着这种猜疑,我进入官网,我的担心立刻解除,他们竟然直接就有了类似的demo: (可以进入以下网址,查看具体示例代码)https://procomponents.ant.design/components/layout#%E8%87%AA%E5%AE%9A%E4%B9%89%E7%9A%84-collapsed。

Jimmy的专栏 7731

Unity资源逆向解析:从APK到AssetStudio的完整实战

本文详细介绍了Unity资源逆向解析的全流程,从APK解包到使用AssetStudio深度解析Unity游戏资源。通过实战案例演示如何提取《植物大战僵尸》等游戏的素材,包括贴图、音频和3D模型,帮助开发者掌握Unity游戏逆向工程的核心技术。

weixin_30664051的博客 475

ENVI遥感数字图像处理方法(一)

文章目录1.查看图像的空间分布特征(一)生成灰度图像(二)生成假彩色图像(三)连接不同视图的影像2.查看图像的像元灰度值3.统计并查看图像直方图 1.查看图像的空间分布特征 在打开一幅遥感影像时,有两个文件,我们要选择数据文件来打开。 打开过后,点击Data Manager,查看该影像的波段 该影像共有6个波段 (一)生成灰度图像 步骤如下: (二)生成假彩色图像 先生成一个一般的假彩色图像: 再生成一个标准假彩色图像,将其存放在一个新的视图中: 标准假彩色图像波段构成为:近红外、红光波段、绿

江昊东的博客 5万+

移动端滚动穿透问题解决方案

一、 问题描述 移动端当position:fixed的弹窗弹出时,滑动弹窗,下层的页面会跟随滚动 二、 解决方案 1. body 设置overflow: hidden; 当弹窗弹出时,设置body元素的overflow属性为hidden,暴力去除滚动。 缺点:会丢失页面的滚动位置,需要使用js进行还原 // CSS .modal-open { overflow: hidden; ...

大灰狼的小绵羊哥哥的博客 386

Nacos漏洞利用工具V3.0.5实战:从认证绕开到内存马植入的全流程指南

本文详细解析了Nacos漏洞利用工具V3.0.5在实战中的应用,从认证绕开到内存马植入的全流程。文章深入探讨了如何利用Nacos的历史漏洞,如默认口令、认证逻辑绕过、Derby SQL注入及Jraft反序列化,实现权限提升与持久化控制,并提供了防御视角与加固建议,旨在帮助安全人员理解攻击链以加强防护。

h6j7k8l9p0的博客 483

element-plus 组件解析 - Layout 布局

layout 布局默认使用 flex 布局,row 组件作为 flex 容器。col 组件作为 flex 元素。最终编译结果

qq_40147756的博客 5425

增程式永磁电机发电系统电压环二自由度控制器设计

本论文主要研究增程式永磁电机发电系统的电压环二自由度控制器设计。该系统采用二自由度控制策略,通过精确调节电压环和电流环,显著提高系统的动态响应性能和稳态稳定性。基于SVPWM(空间矢量脉宽调制)技术,本研究设计的电压环控制器能够在负载突变和外部扰动的情况下,快速恢复并保持电压稳定,从而满足增程式永磁电机发电系统对电压精度和稳定性的高要求。仿真分析表明,所设计的控制器在不同工况下展现出良好的电压稳定性、较短的响应时间和较低的稳态误差,能够有效抑制电压波动并提高系统的鲁棒性。实验结果表明,控制器在维持高效能和高

weixin_44553616的博客 897

力软敏捷开发框架源码7.0.6旗舰版 JNPF开发平台3.4.5 企业版 旗舰版

JNPF作为作为一款深受用户喜爱的低代码产品,凭借雄厚的科研技术力量、丰富的软件开发项目经验、严谨的项目开发流程和高质量的售后服务,已成功帮助千家企业完成数字化项目,建立了覆盖不同行业客户和不同发展阶段的软件产品服务体系。

huoooos0的博客 1839

element源码(二)Layout 布局组件

element源码,layout布局组件

weixin_47169270的博客 2337

自动驾驶大模型---小米&华科的ORION端到端方案

本文介绍了小米汽车与华中科技大学联合开发的ORION自动驾驶端到端方案。该框架创新性地将视觉语言模型(VLM)与自动驾驶系统结合,包含QT-Former特征提取模块、大语言模型(LLM)推理模块和生成式规划器三大核心组件。通过视觉感知与语言理解的深度融合,ORION能更准确地理解人类指令并生成合理轨迹,同时提升系统的可解释性。实验证明,该方案在准确性、泛化能力和决策透明度方面均有显著优势。ORION框架为自动驾驶技术提供了新思路,有望推动行业向更安全、智能的方向发展。

智能汽车人的博客 2005

纯HTML+CSS实战之实现带图标的二级导航菜单

效果图如上 代码如下: &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;纯CSS实现带图标的二级导航菜单&lt;/title&gt; &lt;style&gt;

qq_41886761的博客 5982

【MicroPython编程-ESP32篇:设备驱动】-BNO08X系列传感器驱动

BNO08X 系列(BNO085/BNO086)是一款系统级封装 (SiP),集成了三轴加速度计、三轴陀螺仪、磁力计以及运行 CEVA SH-2 固件的 32 位 ARM® Cortex™-M0+ 微控制器。SH-2 包含 MotionEngine™ 软件,该软件提供复杂的信号处理算法来处理传感器数据,并提供精确的实时 3D 姿态、航向、校准加速度和校准角速度,以及更高级的上下文输出。BNO08X 集成在一个 28 引脚 LGA 封装中,尺寸为 3.8mm x 5.2mm x 1.1mm。它兼容 Andro

视觉与物联智能 695

cannot import name ‘BUFSIZE‘ from ‘numpy‘ 解决方案

本文主要介绍了cannot import name ‘BUFSIZE’ from ‘numpy’ 解决方案,希望能对使用numpy的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 22万+

细心学VC之二---带图标的程序菜单(二)

  带图标的程序菜单(二)本文介绍在基于单文档程序中,如何实现带图标的程序菜单。如下:1.      创建一个单文档工程:AddIconMenu2.      这个工程里面用到了一个类来实现对程序菜单图标的添加以及颜色的设定等等。添加到工程。头文件如下:IconMenu.h   // IconMenu1.h: interface for the CIconMenu class.

zhangyuanlovelife的专栏 3722

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

BadgeRadioButton -- 带角标的RadioButton

一、概述 本文使用上一篇文章 DrawCenterTextView 的一些知识,如果想要理解,请查看后再看本文 在首页导航菜单栏中,大多数都会有角标表示消息的数量,在网上找了一下,有角标的要么无法实现点击事件,要么就是一个角标样式的 TextView,并没有一个简单的RadioButton的角标设置,决定自定义一个简单的 BadgeRadioButton ,目前仅支持 drawableTop 的按钮,实现的效果如下: 二、实现原理 在 onDraw 方法中,根据 DrawableTop 图标的位置,选择右

wusejiege6的博客 443

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

jeecg扩展自定义菜单图标

jeecg扩展自定义菜单图标 官方图标扩展文档:http://doc.jeecg.com/2043975 图标扩展jeecg扩展自定义菜单图标一、登录iconfont并添加项目1.添加项目2.添加图标到项目二、使用步骤1.引入库2.读入数据总结 记录一下在jeecg中菜单管理编辑选择菜单图标的时候添加扩展自定义图标供选择并使用, 一、登录iconfont并添加项目 1.添加项目 选择【资源管理】下拉框,选择【我的项目】,选择下图的紫色按钮添加项目 填写项目名称,前缀和font family,填写

又菜又爱玩 3476

Ant Design Vue自定义菜单图标时收起菜单文字不隐藏问题

问题:自定义菜单图标时收起菜单文字不隐藏问题 代码: <a-menu-item v-for="item in memberMenu" :key="item.path"> <i :class="['iconfont', item.icon]" style="marginRight: 10px;fontSize:20px;"></i> <span class="">{{ item.title }}</span> </a-menu-it

denghuocc 4899

MFC-一个很简单的程序最小化到托盘,带右键菜单带图标

MFC-一个很简单的程序最小化到托盘,带右键菜单带图标 </h1> <div class="clear"></div> <div class="postBody"> <div id="cnblogs_post_body" class="blogpost-body blogpost-body-htm...

我不是码农的博客~~~ 1242

MFC 实现托盘图标菜单图标功能

本文深入解析MFC托盘图标右键菜单图标实现方法,详解MF_OWNERDRAW与MF_STRING的区别,并提供完整源码。

Darker的博客 1465

ant design分享记录-icon图标自定义菜单图标

ant design分享-icon图标自定义菜单图标 本过程使用 iconfont.cn上的 设置icon前缀 import { Icon } from 'ant-design-vue'; import Vue from 'vue' const JihaoIcon = Icon.createFromIconfontCN({ scriptUrl:'//at.alicdn.com/t/xxxxxxxxxxxxxxxx.js' }) Vue.component('jihao-icon', Jihao

流远长季的博客 3539

告别单调右键菜单:ContextMenuManager图标自定义全攻略

你是否也曾对Windows系统千篇一律的右键菜单感到审美疲劳?那些默认的文件夹、文档图标是否让你在高效操作时总觉得缺少一点个性?本文将带你通过ContextMenuManager这款纯粹的Windows右键菜单管理程序,轻松实现图标自定义,让你的右键菜单既实用又赏心悦目。 ## 准备工作:认识ContextMenuManager ContextMenuManager是一款轻量级的Windows...

gitblog_00957的博客 889

拓展07-EasyUI自定义iconCls菜单图标icon

1、效果图 左侧菜单树,和选项卡tabs显示自定义图标。 先推荐一个icon图标下载的网站:https://www.easyicon.net/ 2、iconCls属性 3、准备图标icon 可以从上面推荐的网址下载,基本上各种类型都有 将下载好的图标放入easyui图标文件夹内webapp/easyui/themes/icons 4、添加icon.css 按照上面的样式进行添加自己想要的 b...

vivid9527的博客 4141

在Qt中添加菜单图标

第一步:新建Qt Widgets Application,取合适的项目名称,基类选择QMainWindow,类名为MainWindow。 第二步:创建完项目后,双击mainwindow.ui文件进入设计模式。在这里可以看到界面左上角的“在这里输入”,我们可以在这里添加菜单。双击“在这里输入”,将其更改为“文件(&F)”,然后按下回车键,效果如下图所示。这里的&F表明将菜单的快捷键设...

qq_42884482的博客 4295
上一篇: Android 自定义搜索栏
下一篇: Android Studio引用另一个模块module的方法
曾经_Once
博客等级 码龄8年 33粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值