除了Android系统自带的Button按钮一万,还提供了带图标的按钮ImageButton。
要制作带图标的按钮,首先要在布局文件中定义ImageButton,然后通过setImageDrawable方法来设置要显示的图标。
注意:
我们可以在布局文件中就直接设置按钮的图标,如 android:src="@drawable/icon1"
我们也可以在程序中设置自定义图标
imgbtn3.setImageDrawable(getResources().getDrawable(R.drawable.icon2));
我们还可以使用系统自带的图标
imgbtn4.setImageDrawable(getResources().getDrawabl(android.R.drawable.sym_call_incoming));
设置完按钮的图标后,需要为按钮设置监听setOnClickListener,以此捕获事件并处理
下面的例子讲述的是由4个图标按钮组成的布局,其中三个按钮的图标是自定义的,第四个按钮的图标是系统的,当点击按钮1的时候,弹出dialog,当点击按钮2的时候,点击确定后,可以将按钮2的图标变成按钮3的图标,当点击按钮3的时候,按钮3的图标变成了系统打电话的图标,点击按钮4,显示一个提示dialog
java代码:
package org.loulijun.imagebutton;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;
public class ImageButtonTest extends Activity {
/** Called when the activity is first created. */
TextView textview;
ImageButton imgbtn1;
ImageButton imgbtn2;
ImageButton imgbtn3;
ImageButton imgbtn4;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textview=(TextView)findViewById(R.id.textview);
//分别取得4个ImageButton对象
imgbtn1=(ImageButton)findViewById(R.id.imagebutton1);
imgbtn2=(ImageButton)findViewById(R.id.imagebutton2);
imgbtn3=(ImageButton)findViewById(R.id.imagebutton3);
imgbtn4=(ImageButton)findViewById(R.id.imagebutton4);
//分别为ImageButton设置图标
//imgbtn1已经在main.xml布局中设置了图标,所以就不在这里设置了(设置图标即可在程序中设置,也可在布局文件中设置)
imgbtn2.setImageDrawable(getResources().getDrawable(R.drawable.icon));//在程序中设置图标
imgbtn3.setImageDrawable(getResources().getDrawable(R.drawable.icon2));
imgbtn4.setImageDrawable(getResources().getDrawable(android.R.drawable.sym_call_incoming));//设置系统图标
//下面为各个按钮设置事件监听
imgbtn1.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Dialog dialog=new AlertDialog.Builder(ImageButtonTest.this)
.setTitle("提示")
.setMessage("我是ImageButton1")
.setPositiveButton("确定",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
//相应的处理操作
}
}).create();
dialog.show();
}
});
imgbtn2.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Dialog dialog=new AlertDialog.Builder(ImageButtonTest.this)
.setTitle("提示")
.setMessage("我是ImageButton2,我要使用ImageButton3的图标")
.setPositiveButton("确定",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
imgbtn2.setImageDrawable(getResources().getDrawable(R.drawable.icon2));
}
}).create();
dialog.show();
}
});
imgbtn3.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Dialog dialog=new AlertDialog.Builder(ImageButtonTest.this)
.setTitle("提示")
.setMessage("我是ImageButton3,我想使用系统打电话的图标")
.setPositiveButton("确定",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
imgbtn3.setImageDrawable(getResources().getDrawable(android.R.drawable.sym_action_call));
}
}).create();
dialog.show();
}
});
imgbtn4.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Dialog dialog=new AlertDialog.Builder(ImageButtonTest.this)
.setTitle("提示")
.setMessage("我是使用的系统图标")
.setPositiveButton("确定",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
//相应的处理操作
}
}).create();
dialog.show();
}
});
}
}
分享到:
相关推荐
在Android开发中,构建用户界面是一项关键任务,而“android树,带图标、文字、按钮例子”是一个典型的UI设计需求,通常用于展示层次结构的数据。在这个案例中,开发者使用了ListView和BaseAdapter来创建一个带有...
本文将深入探讨如何基于Android系统原生的EditText控件,实现一个带有清除按钮、可切换密码可见性的自定义输入框。这个组件特别适用于处理需要输入密码或者短信验证码的场景,它能提供更加友好的交互方式,提升用户...
在Android开发中,自定义视图是常见的需求,特别是在创建具有特定功能或独特设计的UI时。本案例中,我们关注的是如何自定义一个带有删除按钮的EditText。这个自定义的EditText不仅提供文本输入功能,还允许用户通过...
在Android开发中,ListView是一种常用的UI组件,用于展示可滚动的列表数据。它允许开发者以高效的方式处理大量数据,同时提供了丰富的自定义选项,比如添加图标来增强视觉效果。本教程将详细介绍如何在Android中实现...
### Android 自带图标库 #### 一、概览 Android 自带图标库是开发者们创建应用时经常利用的资源之一。...同时,在开发过程中也要注意不同 Android 版本间图标资源的变化,以确保应用能够在不同设备上正常运行。
总结一下,创建一个带有清空按钮的`EditText`在Android开发中并不复杂,只需要在布局文件中添加`EditText`和按钮,然后在Java或Kotlin代码中设置点击事件和文本监听。通过以上步骤,我们可以创建一个用户友好的输入...
在Android开发中,你可以通过以下方式使用这些内置图标: 1. **Java代码引用**:例如,`myMenuItem.setIcon(android.R.drawable.ic_menu_save)` 这行代码将菜单项的图标设置为保存图标。 2. **XML布局文件引用**:...
在Android开发中,通知栏(Notification)是向用户传达应用后台事件或信息的重要途径。一个标准的通知通常包含标题、文本内容以及可选的附加操作。然而,为了提供更丰富的交互体验,开发者有时需要创建自定义通知,...
在Android开发中,创建一个具有特定功能的登录输入框是常见的需求,比如带有删除按钮以及显示/隐藏密码的选项。这个自定义控件——MyLoginEditText,旨在提供更友好的用户体验,让用户能够方便地清除输入内容,同时...
在Android开发中,自定义视图是提升用户体验和实现独特设计需求的重要手段。"带删除按钮的圆角EditText"是一个自定义控件的例子,它结合了EditText的基本输入功能和一个可点击的删除按钮,同时提供了圆角的视觉效果...
Android圆形遥控器按钮盘带中间按钮是一种专门为Android平台设计的用户界面组件,用于提供类似于物理遥控器的圆形按钮布局的交互体验。这种按钮盘特别适合那些需要用户通过圆形导航进行选择和操作的应用程序,例如...
在Android应用开发中,设计和使用合适的图标是至关重要的,因为它们不仅提升应用程序的视觉吸引力,还能帮助用户快速识别和理解...在实际应用中,结合Android开发的最佳实践,可以创建出用户体验优秀的音乐播放器应用。
在Android开发中,自定义对话框(Dialog)是一种常见的需求,它可以提供更加个性化的用户体验。本文将详细讲解如何实现一个自定义的右上角带有“X”文字按钮的Dialog,这个按钮可以用来关闭Dialog。 首先,我们需要...
在Android开发中,菜单icon图标是用户界面设计中不可或缺的一部分,它们为用户提供了一种直观的方式来识别和触发不同的功能。本文将深入探讨Android菜单icon图标的相关知识点,包括其设计原则、类型、尺寸规范以及...
在Android开发中,自定义控件是提升应用用户体验和界面设计独特性的重要手段。本教程将深入探讨如何创建一个自定义的`LoadingButton`,它不仅具有普通按钮的功能,还能在用户点击时显示加载动画,增加交互反馈。我们...
在Android开发中,`ImageButton`是一个特殊的`Button`,它允许我们显示图像,而不是只有文本。这个组件非常适合创建带有图标的操作按钮。本文将详细介绍如何在Android应用中使用系统图标来定义`ImageButton`,并提供...
在Android开发过程中,系统自带的一系列图标资源对于构建用户界面和提升用户体验至关重要。这些图标不仅涵盖了常见的控件样式,还涉及了多种状态下的视觉表现,有助于开发者快速搭建界面,并确保应用程序在不同场景...
在Android应用开发中,用户界面的设计与交互是至关重要的,其中EditText组件是用于接收用户文本输入的基本元素。然而,为了提供更好的用户体验,我们有时需要在EditText右侧添加一个清除按钮,以便用户可以快速删除...
在Android开发中,图标设计是用户体验中的重要组成部分。"Android黑白系图标"是一个主题,它专注于使用黑白色调来创建简洁、清晰且易于识别的图形元素。这种设计风格通常适用于那些希望界面简洁、专业或者追求极简...
在Android操作系统中,图标是用户界面的重要组成部分,它们代表着应用程序、系统服务以及各种状态提示。...总的来说,这个图标集合是一个宝贵的资源库,为Android开发和设计工作提供了极大的便利。