android Button ImageButton 区别

简介: BUTTON类结构图: 由类结构图,可以看出Button是继承于TextView的,所以TextView的一些属性也适用于Button控件。 ImageButton类结构图: ImageButton就是用一个图标代表了一些文字,它没Android:text属性。

BUTTON类结构图:

\

由类结构图,可以看出Button是继承于TextView的,所以TextView的一些属性也适用于Button控件。


ImageButton类结构图:

\

ImageButton就是用一个图标代表了一些文字,它没Android:text属性。它由Android:src指定图标的位置
android:src="@drawable/back_48"
其他属性都和Button差不多






1、  如何设置按钮的样式?
通过Android:background设置

<Button android:id="@+id/myBtn1" android:text="按钮1 设置背景样式" 
 
     android:layout_width="fill_parent" android:layout_height="wrap_content" 
 
     android:background="#fff000" /> 



2、如何设置背景图标:

<Button android:id="@+id/myBtn6" android:text="按钮6 设置背景图标" 
 
      android:layout_width="wrap_content" android:layout_height="wrap_content" 
 
      android:textStyle="bold" android:background="@drawable/back_48" 
 
       /> 


3、  如何设置按钮的文字颜色
通过Android:textColor

<Button android:id="@+id/myBtn2" android:text="按钮2 字体颜色" 
 
     android:layout_width="fill_parent" android:layout_height="wrap_content" 
 
     android:textColor="#ff0000" /> 


 
nbsp; 
4、  如何设置按钮的文字样式
通过android:textStyle 

<Button android:id="@+id/myBtn3" android:text="按钮3字体加粗" 
 
     android:layout_width="fill_parent" android:layout_height="wrap_content" 
 
     android:textColor="#ff0000" android:textStyle="bold" />


5、  如何为按钮添加监听器注册事件
 方式1:通过setOnClickListener方式

myBtn4.setOnClickListener(new OnClickListener() { 
 
  
 
                     @Override 
 
                     public void onClick(View v) { 
 
                            myBtn4.setText("setOnclickListener事件监听注册成功"); 
 
  
 
                     } 
 
              }); 




实践演练:
1、  怎么样设置ImageButton的图标位置

<ImageButton android:id="@+id/imgBtn01" android:src="@drawable/forward_48" 
 
   android:layout_width="wrap_content" android:layout_height="wrap_content" /> 


2、  怎么样为ImageButton添加监听器注册事件
与Button一样它照样有两种方式设置
方式1:通过onClickListener

imgBtn01.setOnClickListener(new OnClickListener() { 
 
  
 
        @Override 
 
        public void onClick(View v) { 
 
  
 
           myTextView.setText("ImageButton的监听事件"); 
 
        } 
 
      }); 


方式2:通过XML文件设置

<ImageButton android:id="@+id/imgBtn02" android:src="@drawable/back_48" 
 
      android:layout_width="wrap_content" android:layout_height="wrap_content" 
 
      android:onClick="ImageButtonXml" /> 



1、  设置透明度

imgBtn01.setAlpha(50);//设置透明度


目录
相关文章
|
2月前
Android.mk(makefile)中几个符号的区别:=、 :=、 ?=、 +=
本文解释了在Android.mk文件中使用的几种赋值符号的区别,包括`=`(基本赋值)、`:=`(覆盖赋值)、`?=`(条件赋值,仅在变量未赋值时操作)、`+=`(追加赋值),并通过实验演示了这些符号的具体行为和效果。
91 1
|
18天前
|
Android开发 Kotlin
Android经典面试题之Kotlin的==和===有什么区别?
本文介绍了 Kotlin 中 `==` 和 `===` 操作符的区别:`==` 用于比较值是否相等,而 `===` 用于检查对象身份。对于基本类型,两者行为相似;对于对象引用,`==` 比较值相等性,`===` 检查引用是否指向同一实例。此外,还列举了其他常用比较操作符及其应用场景。
171 93
|
5月前
|
API 开发工具 Android开发
iOS 和 Android 平台的开发有哪些主要区别?
iOS与Android开发区别:iOS用Objective-C/Swift,App Store唯一下载渠道;Android用Java/Kotlin,多商店发布(如Google Play、华为市场)。设计上,iOS简洁一致,Android灵活可定制。开发工具,iOS用Xcode,Android用Android Studio。硬件和系统多样性,iOS统一,Android复杂。权限管理、审核流程及API各有特点,开发者需依据目标平台特性进行选择。
222 3
|
5月前
|
XML 存储 编解码
android 目录结构中 drawable(hdpi,ldpi,mdpi) 的区别
android 目录结构中 drawable(hdpi,ldpi,mdpi) 的区别
175 1
|
3月前
|
安全 Android开发 Kotlin
Android经典面试题之Kotlin延迟初始化的by lazy和lateinit有什么区别?
**Kotlin中的`by lazy`和`lateinit`都是延迟初始化技术。`by lazy`用于只读属性,线程安全,首次访问时初始化;`lateinit`用于可变属性,需手动初始化,非线程安全。`by lazy`支持线程安全模式选择,而`lateinit`适用于构造函数后初始化。选择依赖于属性特性和使用场景。**
107 5
Android经典面试题之Kotlin延迟初始化的by lazy和lateinit有什么区别?
|
3月前
|
Android开发 开发者
Android经典面试题之SurfaceView和TextureView有什么区别?
分享了`SurfaceView`和`TextureView`在Android中的角色。`SurfaceView`适于视频/游戏,独立窗口低延迟,但变换受限;`TextureView`支持复杂变换,视图层级中渲染,适合动画/视频特效,但性能略低。两者在性能、变换、使用和层级上有差异,开发者需按需选择。
48 1
|
3月前
|
SQL Java Unix
Android经典面试题之Java中获取时间戳的方式有哪些?有什么区别?
在Java中获取时间戳有多种方式,包括`System.currentTimeMillis()`(毫秒级,适用于日志和计时)、`System.nanoTime()`(纳秒级,高精度计时)、`Instant.now().toEpochMilli()`(毫秒级,ISO-8601标准)和`Instant.now().getEpochSecond()`(秒级)。`Timestamp.valueOf(LocalDateTime.now()).getTime()`适用于数据库操作。选择方法取决于精度、用途和时间起点的需求。
47 3
|
3月前
|
Android开发
Android面试题之View的invalidate方法和postInvalidate方法有什么区别
本文探讨了Android自定义View中`invalidate()`和`postInvalidate()`的区别。`invalidate()`在UI线程中刷新View,而`postInvalidate()`用于非UI线程,通过消息机制切换到UI线程执行`invalidate()`。源码分析显示,`postInvalidate()`最终调用`ViewRootImpl`的`dispatchInvalidateDelayed`,通过Handler发送消息到UI线程执行刷新。
41 1
|
3月前
|
消息中间件 调度 Android开发
Android经典面试题之View的post方法和Handler的post方法有什么区别?
本文对比了Android开发中`View.post`与`Handler.post`的使用。`View.post`将任务加入视图关联的消息队列,在视图布局后执行,适合视图操作。`Handler.post`更通用,可调度至特定Handler的线程,不仅限于视图任务。选择方法取决于具体需求和上下文。
43 0
|
3月前
|
Android开发 Kotlin
Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
**Kotlin中的匿名函数与Lambda表达式概述:** 匿名函数(`fun`关键字,明确返回类型,支持非局部返回)适合复杂逻辑,而Lambda(简洁语法,类型推断)常用于内联操作和高阶函数参数。两者在语法、返回类型和使用场景上有所区别,但都提供无名函数的能力。
26 0
下一篇
无影云桌面