Button类继承与Actor类,可以在舞台中使用,但是它也继承了许多Actor的子类,如Group、Table、WidgetGroup灯。
常用构造方法:
Button():创建按钮对象,不设置其样式及大小
Button(Button.ButtonStyle style):创建一个按钮,参数是指定按钮的大小及样式
Button(Drawable up):创建一个按钮对象,按钮未单击时(即抬起状态),样式为参数内纹理样式
Button(Drawable up,Drawable down):创建按钮对象,第一个参数代表抬起状态使用up纹理,第二个参数代表按下状态时使用down纹理
Button(Drawable up,Drawable down):创建按钮对象,第一二参数同上,第三个参数代表鼠标滑过按钮时使用的纹理
Button(Skin skin):创建按钮对象,使用Skin对象中的样式
Button(Skin skin,String styleName):使用Skin对象中指定名称的按钮样式。
常用方法:
draw(Batch batch,float parentAlpha):绘制当前按钮。第一个参数代表绘制所需的精灵画笔,第二个参数代表绘制的当前按钮透明度
getClickListener():获取当前按钮所添加的监听器
getMinHight():获取按钮最小高度
getMinWidth():获取按钮最小宽度
invalidate():作废当前布局
invalidateHierarchy():作废当前演员及其所有父类
layout():计算当前布局内所有演员的绘制信息
pack():排列当前演员的宽度与高度信息并选取最优的宽度与高度
setFillParent(boolean fillParent):是否填充满当前区域
setLayoutEnabled(boolean enabled):是否将当前布局使用与当前演员及其子类
validate():确定当前演员是否已被布局
常用属性:
checked:鼠标滑过按钮显式的纹理,返回类型为Drawable
checkedOver:鼠标滑过按钮并离开按钮显式的纹理对象,返回Drawable类型
down:被按钮按下时显示的纹理,返回Drawable类型
pressedOffsetX:单击当前按钮的鼠标的X轴偏移量
pressedOffsetY:单击当前按钮的鼠标的Y轴偏移量
unpressedOffsetX:离开当前按钮的鼠标的X轴偏移量
unpressedOffsetY:离开当前按钮的鼠标的Y轴偏移量
up:按钮未被按下时显示的纹理,返回类型为Drawable类型变量
代码:
   package com.mygdx.syscontrol;

 import com.badlogic.gdx.scenes.scene2d.InputEvent;
 import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
 /**
  * 我的点击事件类
  * @author Jack(乐智)
  * @blog dtblog.cn
  * @qq 984137183
  */
 public class MyClick extends ClickListener {

     @Override
     public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
         //打印
         System.out.println("Button:"+button);
         return true;
     }

 }
 package com.mygdx.syscontrol;

 import com.badlogic.gdx.ApplicationAdapter;
 import com.badlogic.gdx.Gdx;
 import com.badlogic.gdx.graphics.GL20;
 import com.badlogic.gdx.graphics.Texture;
 import com.badlogic.gdx.graphics.g2d.TextureRegion;
 import com.badlogic.gdx.scenes.scene2d.Stage;
 import com.badlogic.gdx.scenes.scene2d.ui.Button;
 import com.badlogic.gdx.scenes.scene2d.ui.Skin;
 import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
 /**
  * 使用Button
  * @author Jack(乐智)
  * @blog dtblog.cn
  * @qq 984137183
  */
 public class TestButton extends ApplicationAdapter {
     //声明Skin对象
     private Skin skin;
     //声明按钮A
     private Button buttonA;
     //声明按钮B
     private Button buttonB;
     //声明舞台
     private Stage stage;
     //按钮抬起时纹理
     private Texture btnUp;
     //按钮按下时纹理
     private Texture btnDown;
     //声明监听器
     private MyClick click;

     @Override
     public void create() {
         //实例化skin对象
         skin=new Skin(Gdx.files.internal("button/test.json"));
         //实例化舞台
         stage=new Stage();
         //初始化按钮抬起纹理
         btnUp=new Texture(Gdx.files.internal("button/btnUp.png"));
         //初始化按钮按下纹理
         btnDown=new Texture(Gdx.files.internal("button/btnDown.png"));
         //抬起纹理样式
         TextureRegionDrawable btn_up=new TextureRegionDrawable(new TextureRegion(btnUp));
         //按下纹理样式
         TextureRegionDrawable btn_down=new TextureRegionDrawable(new TextureRegion(btnDown));
         //实例化按钮A
         buttonA=new Button(skin.get("style", Button.ButtonStyle.class));
         //初始化按钮B
         buttonB=new Button(btn_up,btn_down);
         //初识化监听器
         click=new MyClick();
         //添加监听器
         buttonA.addListener(click);
         buttonB.addListener(click);
         //设置按钮b的位置
         buttonB.setPosition(100, 100);
         //添加按钮b到舞台
         stage.addActor(buttonB);
         //添加按钮a到舞台
         stage.addActor(buttonA);
         //注册舞台监听
         Gdx.input.setInputProcessor(stage);
     }

     @Override
     public void render() {
         Gdx.gl.glClearColor(1, 1, 1, 1);
         Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
         //更新舞台逻辑
         stage.act();
         //绘制舞台内容
         stage.draw();
     }

 }
资源路径:
效果图:

原文由博主 乐智 编辑撰写,版权归博主所有。

原文地址 http://www.dtblog.cn/1170.html 转载请注明出处!

【开源java游戏框架libgdx专题】-15-系统控件-Button类的更多相关文章

  1. 【开源java游戏框架libgdx专题】-11-核心库-演员类

    演员类,又称为Actor类,是libgdx开发中最基本的元素,可以被继承. 演员类,从OpenGL类的角度来理解,可以称为一个二维场景节点.它本身具有位置(postion).边界矩形(类似Retang ...

  2. 【开源java游戏框架libgdx专题】-01-libgdx介绍

    libgdx是一款开源的java游戏框架,而且还实现了Desktop/Android/BlackBerry/iOS/HTML5这些些平台的跨平台开发.官方网址:https://libgdx.badlo ...

  3. 【开源java游戏框架libgdx专题】-05-模块描述与上下文

    模块描述(Modules overview) Input:为所有的平台提供一个统一的输入模型和处理程序. 获取触摸示例: if (Gdx.input.isTouched()) { System.out ...

  4. 【开源java游戏框架libgdx专题】-08-中文显示与绘制

    libgdx虽然是由美国人Mario Zechner(即BadlogicGames)写的开源引擎,由于Libgdx底层是用OpenGL实现的,所以Libgdx是可以支持中文的,在libgdx中的汉字都 ...

  5. 【开源java游戏框架libgdx专题】-07-文件处理

    介绍:文件处理在不同平台的文件管理是略有差异的 Desktop(Windows,Linux,Mac OS X等等):在桌面系统中,文件系统是一个大块的内存.文件可以通过当前的工作目录或者绝对路径被引用 ...

  6. 【开源java游戏框架libgdx专题】-10-核心库-Viewport

    Viewport类,又称为视口类,主要负责管理游戏相机,处理游戏世界坐标与布景层坐标的换算关系.在移动端开发,不像PC端容易.因为要适配不同分辨率的设备.libgdx处理不同的设备屏幕时,用视口处理舞 ...

  7. 【开源java游戏框架libgdx专题】-09-动画的使用

    1.Animation类介绍   Api定义:动画是由多个帧,在设定的时间间隔序列显示.比如,一个跑步的人一个动画可以通过运行时播放这些图像无限拍照他了. 功能用法:管理动画,设置随即播放模式和播放顺 ...

  8. 【开源java游戏框架libgdx专题】-04-接口介绍及生命周期

    在核心项目中包含6大与操作系统交互的接口,每个后端都实现了这6大接口. Application:运行应用程序并通知API的客户端应用程序级别的事件,提供日志记录设施和查询方法,例如,内存使用. Fil ...

  9. 【开源java游戏框架libgdx专题】-14-系统控件-Skin类

    Skin类主要用于存储用户界面的资源,该资源主要用于窗口部件.这些资源也包括纹理图片.位图画笔.颜色等内容.方便创建游戏组件,同时使用Skin也可以批量的粗略处理一些窗口部件. test.json { ...

  10. 【开源java游戏框架libgdx专题】-13-开发工具-地图的使用

    支持libGDX的地图编辑器有很多种,其中比较常用的工具为Tiled地图工具.Tiled是一款非常好用的地图编辑器.下载地址:http://www.mapeditor.org TiledMap类: 又 ...

随机推荐

  1. WebForm

    ASP开发方式 格式 <%  %> C#代码可以写在里面 <%= %>  往外输出一个值,可以放一个变量,一个方法(这个方法是有返回值的直接打印到界面上去) <%@ %& ...

  2. codevs 1078 最小生成树

    题目描述 Description 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场.当然,他需要你的帮助. 约翰已经给他的农场安排了一条高速的网络线路,他想把这 ...

  3. xcode 工具 alcatraz---备用

    简介 Alcatraz 是一个帮你管理 Xcode 插件.模版以及颜色配置的工具.它可以直接集成到 Xcode 的图形界面中,让你感觉就像在使用 Xcode 自带的功能一样. 安装和删除 使用如下的命 ...

  4. ACM训练计划step 1 [非原创]

    (Step1-500题)UVaOJ+算法竞赛入门经典+挑战编程+USACO 下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成 ...

  5. MySql可视化工具MySQL Workbench使用教程

    1. MySQL Workbench MySQL Workbench 为数据库管理员.程序开发者和系统规划师提供可视化的Sql开发.数据库建模.以及数据库管理功能. 2.MySQL Workbench ...

  6. Networking

    poj1287:http://poj.org/problem?id=1287 题意:平面上有许多点,又有许多边.每条边有一定的长度,且只会连接两个不同的点.现需要从这些边中选择某些边,使得尽可能多的点 ...

  7. tortoisegit安装使用

    git的使用越来越广泛 使用命令比较麻烦,下面讲解一下tortoisegit的使用 先下载安装git(msysgit)和tortoisegit,安装后提示重启电脑,不解释 1.找一个文件夹做仓库 这里 ...

  8. Mysql 数字类型转换函数

    .将Int 转为varchar经常用 concat函数,比如concat(,' .将varchar 转为Int 用 cast(a as signed) a为varchar类型的字符串 总结:类型转换和 ...

  9. Nodejs in Visual Studio Code 06.新建Module

    1.开始 Node.js:https://nodejs.org 2.Moudle js编程中,由于大家可以直接在全局作用域中编写代码,使开发人员可以很容易的新建一个全局变量或这全局模块,这些全局变量或 ...

  10. qemu kvm 虚拟化

    虚拟化: KVM是一个基于Linux内核的虚拟机,属于完全虚拟化.虚拟机监控的实现模型有两类:监控模型(Hypervisor)和宿主机模型(Host-based).由于监控模型需要进行处理器调度,还需 ...