android血量条的制作

news2024/11/17 14:27:40

最近,项目中需要用到血量条,想到血量条这东西,在游戏中经常见到。那么,再android开发中如何制作血量条呢?这里本人想到了两种方法,在网上找到一种最优方案。

 

方法一:用多张相同的图片拼凑而成的血条,通过View.INVISIBLE来隐藏。

优点:代码简单易懂,实现起来较容易。

缺点:UI界面搭建起来比较麻烦

/*
* 方法一:通过多段图片拼接而成,每点击一次就调用View.INVISIBLE来隐藏。
* */
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                imageViews[i].setVisibility(View.INVISIBLE);
                if(i<imageViews.length)
                    i++;


            }
        });

方法二:给getLayoutParams().height赋值,这是从根本上去改变控件的高度。

优点:实现起来超级简单

缺点:……

        * 方法二:通过
        * */
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                int a=bloodvalue3.getWidth();
                Log.i("tag",a+"");
                bloodvalue3.setWidth(a/2);
//                editText.getLayoutParams().height = 100;
                bloodvalue3.getLayoutParams().width=a/2;
                Log.i("tag1",a+"");
            }
        });

参考博客:android 关于setWidth()和setHeight()没反应的问题 - 新感觉 - 博客园

方法三:通过自定义View的方式去实现。

优点:能够通过参数随时调整血量条

缺点:不易实现

这种方式本人尝试过,然后出了些问题,以后再补充吧!

方法四:安卓自带的控件有模拟类似功能的条状控件,这个没试过。

参考代码:

public class MainActivity extends AppCompatActivity {


    int i=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button=findViewById(R.id.button);
        Button button1=findViewById(R.id.button1);
        Button button2=findViewById(R.id.button2);
        ImageView bloodvalue2=findViewById(R.id.bloodvalue2);
        ImageView bloodvalue1=findViewById(R.id.bloodvalue1);
        TextView bloodvalue3=findViewById(R.id.bloodvalue3);
        ImageView[] imageViews=new ImageView[]{bloodvalue2,bloodvalue1};
/*
* 方法一:通过多段图片拼接而成,每点击一次就调用View.INVISIBLE来隐藏。
* */
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                imageViews[i].setVisibility(View.INVISIBLE);
                if(i<imageViews.length)
                    i++;


            }
        });

        /*
        * 方法二:通过
        * */
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                int a=bloodvalue3.getWidth();
                Log.i("tag",a+"");
                bloodvalue3.setWidth(a/2);
//                editText.getLayoutParams().height = 100;
                bloodvalue3.getLayoutParams().width=a/2;
                Log.i("tag1",a+"");
            }
        });
        BloodProgress bloodProgress=new BloodProgress(this);
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
             bloodProgress.setA(0.5f);
            }
        });


    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/130114.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker安装nginx以及nginx-gui控制面板

一、安装nginx 1、搜索镜像 docker search nginx2、拉取镜像 docker pull nginx3、创建Nginx挂载配置文件 # 创建挂载目录 mkdir -p /install/nginx/conf mkdir -p /install/nginx/log mkdir -p /install/nginx/html# 生成容器 # 将容器nginx.conf文件复制到宿主机 # 将容器…

公网远程连接本地socket服务【内网穿透】

文章目录1. 配置本地socket服务2. 本地socket服务暴露至公网2.1 创建隧道映射9999端口2.2 获取公网地址3. 公网连接本地socket服务端1. 配置本地socket服务 Java 服务端demo环境 jdk1.8框架:springbootmaven开发工具:IDEA 在pom文件引入第三包封装的netty框架maven坐标 <…

【MyBatis】安装 + 框架搭建 + 优化 + 增删改查(全程一条龙服务讲解~)

目录 前言 一、准备工作 1.1、下载MyBatis 1.2、数据库设计 二、搭建框架 2.1、创建Maven项目 2.2、jar包、引入依赖 2.3、创建MyBatis核心配置文件 2.4、映射文件 2.5、通过junit测试功能 2.6、框架优化 三、增删改查优化 四、小结——注意事项 前言 本篇全程从0…

软件测试工程师的发展道路

最近看到一些测试朋友&#xff0c;对测试未来比较迷茫&#xff0c;不知该如何前行&#xff0c;无方向感。目前来看&#xff0c;业界目前存在一个普遍的矛盾&#xff0c;一方面很多人会觉得测试没有发展前途&#xff0c;另一方面&#xff0c;又有非常多的企业急需专业的测试人员…

React学习05-React Router 5

React Router 5 相关理解 SPA 单页Web应用&#xff08;single page web application&#xff0c;SPA&#xff09;。整个应用只有一个完整的页面。点击页面中的链接不会刷新页面&#xff0c;只会做页面的局部更新。数据都需要通过ajax请求获取, 并在前端异步展现。 路由 什么…

全球十大数据安全事件

2021年&#xff0c;数据隐私泄露事件频发&#xff0c;涉及面广&#xff0c;影响力大&#xff0c;企业因此陷入数据保护合规与社会舆情压力的双重危机。近日&#xff0c;有国外媒体梳理了2021年十大数据泄密事件&#xff0c;并对事件进行了点评分析&#xff0c;可供读者参考。据…

第二十九讲:神州路由器DHCP协议的配置

实验拓扑图如下所示 操作步骤&#xff1a; 步骤1&#xff1a;按照图1&#xff0c;正确连接拓扑结构图。 步骤2&#xff1a;为路由器设置主机名称和配置接口IP地址。 Router>enable &#xff01;进入特权模式 Router #config &a…

MySQL高级【SQL性能分析】

目录 1&#xff1a;SQL性能分析 1.1&#xff1a;SQL执行频率 1.2&#xff1a;慢查询日志 1.3&#xff1a;profile详情 1.4&#xff1a;explain 1&#xff1a;SQL性能分析 1.1&#xff1a;SQL执行频率 MySQL 客户端连接成功后&#xff0c;通过 show [session|global] sta…

2022年的5G行业:“5G+”很火,5G网络迟迟未能普及

作者 | 曾响铃 文 | 响铃说 2022年&#xff0c;5G行业依旧是如火如荼地发展&#xff0c;5G技术继续深刻地改变着我们的生活与生产&#xff0c;影响社会经济发展的方方面面。 回顾过去的一年&#xff0c;5G行业有看点&#xff0c;也有疑虑。 5G网络已基本覆盖全国。截至 202…

PaddleNLP开源基于UIE的情感分析,解决小样本难题,助力客户意见洞察与舆情分析!

情感分析&#xff08;Sentiment Analysis&#xff09;是近年来国内外研究的热点&#xff0c;旨在对带有情感色彩的主观性文本进行分析、处理、归纳和推理。情感分析具有广泛的应用场景&#xff0c;可被应用于消费决策、舆情分析、个性化推荐等领域。 如上图所示&#xff0c;情…

移位操作符、位操作符,原码、反码、补码

整数的二进制的表达形式有3种。原码反码补码下面我们举一个例子吧十进制的2原码&#xff1a;00000000000000000000000000000010&#xff08;常见的形式&#xff09;反码&#xff1a;00000000000000000000000000000010补码&#xff1a;00000000000000000000000000000010小结 正整…

k8s集群部署02

k8s集群部署02k8s集群部署02仍然报错若镜像拉取过慢原因k8s集群部署02 一、pod基本操作Pod是可以创建和管理Kubernetes计算的最小可部署单元&#xff0c;一个Pod代表着集群中运行的一个进程&#xff0c;每个pod都有一个唯一的ip。一个pod类似一个豌豆荚&#xff0c;包含一个或…

Hack the Box CTF 比赛 简单难度 XOR 密码学题目 Crypto 流程| Multikey Walkthrough

这是近期参加HTB夺旗战时遇到的一道难度为简单的密码学Crypto题目。但是我觉得挺有意思&#xff0c;就做下记录。 1. 题目&#xff1a; 题干没有太多的内容&#xff0c;就是一段python程序&#xff0c;和一个output的加密结果&#xff0c;如下。 Python&#xff1a; import …

【数据结构】手推堆实现,拳打堆排序,脚踩Top-k

目录一.完全二叉树的顺序结构二.堆的概念及结构三.堆的实现1.堆向下调整2.向下调整建堆3.向下调整建堆时间复杂度4.堆的插入&#xff08;向上调整&#xff09;5.向上调整建堆6.向上调整建堆时间复杂度7.堆的删除8.堆的代码实现四.Top-K问题五.堆排序一.完全二叉树的顺序结构 堆…

GPIO实验

一、GPIO简介 GPIO&#xff08;General-purpose input/output&#xff09;即通用型输入输出&#xff0c;GPIO可以控制连接在其之上的引脚实现信号的输入和输出 芯片的引脚与外部设备相连&#xff0c;从而实现与外部硬件设备的通讯、控制及信号采集等功能 实验步骤1. 通过电路…

第十七讲:神州三层交换机DHCP服务器配置

DHCP是基于Client&#xff0d;Server模式的协议&#xff0c;DHCP客户机向DHCP服务器索取网络地址及配置参数&#xff1b;服务器为客户机提供网络地址及配置参数&#xff1b;当DHCP客户机和DHCP服务器不在同一子网时&#xff0c;需要由DHCP中继为DHCP客户机和DHCP服务器传递DHCP…

java企业通知小程序微信消息推送小程序企业消息通知系统网站源码

简介 本系统主要是利用小程序和springboot开发的企业分组消息推送&#xff0c;主要是员工关注小程序&#xff0c;由分组领导创建消息主体并设置消息提醒时间&#xff0c;利用微信的消息模板对选定的员工进行消息提醒推送。比如公司的技术部需要在11月3号早上8点举行晨会&#…

【Java编程进阶】面向对象思想初识

推荐学习专栏&#xff1a;Java 编程进阶之路【从入门到精通】 文章目录1. 面向对象初识2. 类和对象2.1 类的定义2.2 对象的创建和使用3. 构造方法4. 方法重载5. static 关键字5.1 static 方法5.2 static 变量6. 对象的引用和 this7. 总结1. 面向对象初识 之前我们学习了 C 语言…

P2367 语文成绩和P5542 Painting The Barn S(一维和二维差分)

目录 前言 一、P2367 语文成绩 二、P5542 Painting The Barn S 前言 图文详解一维差分 图文详解二维差分 一、P2367 语文成绩 题目背景&#xff1a; 语文考试结束了&#xff0c;成绩还是一如既往地有问题。 题目描述&#xff1a; 语文老师总是写错成绩&#xff0c;所以当…

关于C语言中内存分配

一、static在C语言里面可以用来修饰变量&#xff0c;也可以用来修饰函数。 1、 先看用来修饰变量的时候。变量在C语言里面可分为存在全局数据区、栈和堆里。 其实我们平时所说的堆栈是栈而不是堆&#xff0c;不要弄混。 例如&#xff1a;在file.c中 int a ; int main() { int b…