展开全部

除了Android系统自带的Button按钮以外,还提供了带图标的按钮ImageButton

要制作带图标的按钮,首先要在布局62616964757a686964616fe58685e5aeb931333337613163文件中定义ImageButton,然后通过setImageDrawable方法来设置要显示的图标。

注意:

我们可以在布局文件中就直接设置按钮的图标,如

android:src=”@drawable/icon1″

我们也可以在程序中设置自定义图标

imgbtn3.setImageDrawable(getResources().getDrawable(R.drawable.icon2));

我们还可以使用系统自带的图标

imgbtn4.setImageDrawable(getResources().getDrawable(android.R.drawable.sym_call_incoming));

设置完按钮的图标后,需要为按钮设置监听setOnClickListener,以此捕获事件并处理

下面的例子讲述的是由4个图标按钮组成的布局,其中三个按钮的图标是自定义的,第四个按钮的图标是系统的,当点击按钮1的时候,弹出dialog,当点击按钮2的时候,点击确定后,可以将按钮2的图标变成按钮3的图标,当点击按钮3的时候,按钮3的图标变成了系统打电话的图标,点击按钮4,显示一个提示dialog

ImageButtonTest.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();

}

});

}

}

布局文件main.xml

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

android:id="@+id/textview"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="ImageButton测试案例"

/>

android:id="@+id/imagebutton1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/icon1"

/>

android:id="@+id/imagebutton2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

/>

android:id="@+id/imagebutton3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

/>

android:id="@+id/imagebutton4"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

/>

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

android 按钮带图标 阴影_android中带图标的按钮(ImageButton)怎么用相关推荐

  1. android 按钮带图标 阴影_Android实现图片添加阴影效果的2种方法

    给图片添加阴影效果,这是很常见的需求.第一种方法是自定义drawable,使用layer-list定义两个图片,代码如下: show_view.xml: android:top="5dp&q ...

  2. 在Vue+Element ui 项目中如何使用iconfont(阿里图标库)中的图标

    在项目过程中,element ui 中自带的图标往往满足不了自己的需求,那么如何在项目中使用iconfont的图标呢? 在iconfont中新建一个项目 找到自己想要的图标,加入购物车,加入完成后点击 ...

  3. html网页加入一个按钮,在html网页设计中,一个“登录”按钮怎么编写代码?

    html网页设计:一个简单的登录界面代码! 在html网页设计中,一个"登录"按钮怎么编写代码? 列如所给图片的"登录"按钮怎么用html代码显示出来,要求能够 ...

  4. 广义图标与界面中的图标

    图标是具有明确指代含义的计算机图形 桌面图标是软件标识,界面中的图标是功能标识. 广义--具有指代意义的图形符号,具有高度浓缩并快捷传达信息.便于记忆的特性.应用范围很广,软硬件网页社交场所公共场合无 ...

  5. vue两个按钮切换_在vue中实现多个按钮样式的点击切换?

    1.在vue中实现多个按钮样式的点击切换?有多个按钮,点击其中一个出现下划线,而另一个回到原始状态. 点击其中一个两个同时出现下划线样式: 再次点击两个都还原成最初的样式,即有下划线: 如何实现只有被 ...

  6. android 按钮带图标 阴影_Android Material Design系列之FloatingActionButton和Snackbar

    今天主讲的Material Design系列的两个控件都不难,所以一起讲了,分别是FloatingActionButton和Snackbar.这个系列都是主讲的Material Design风格的控件 ...

  7. php弹出窗口带确定按钮,javascript弹出窗口中增加确定取消按钮

    比例a标签点击后,弹出带确定与取消的窗口,点击确定则执行一个动作,否则不执行. 首先我们用ecshop 模板使用举例 {if $votings eq 1} οnclick="if (conf ...

  8. php 网址尾部带斜杠和不带区别,URL路径中带正斜杠/与不带的区别

    简单理解:不带斜杠的URL结尾通常被服务器识别成独立文件,当它去查找这个文件缺失的时候,就会重定向到带斜杠的URL,这个时候带斜杠的URL,可以理解成为是目录. 解读URL结尾斜杠的产生: 举例: - ...

  9. android 控件宽度自适应_Android中让图片自适应控件的大小的方法

    这就需要把.png格式的图片转成.9.png格式,.9.png就是后缀名.在安装Android-SDK时自带了可以把.png格式的图片编辑后保存就变成了.9.png格式.这个文件存放在你所安装的And ...

最新文章

  1. 【 MATLAB 】fliplr 函数介绍(从左到右翻转阵列)
  2. 牛客网——求平均年龄(水题)
  3. 关于添加“服务引用”和“添加引用”的一点总结
  4. 交换基本数据类型的方法swap,并影响到主方法
  5. 多协程实例分析(一)
  6. TCP/IP总结(4)TCP 之3次握手
  7. 为SAP Analytics Cloud的story创建持久化页面
  8. Java Web访问.action_java设置web首页访问action
  9. python面向对象怎么解决_Python面向对象编程1
  10. java 大小固定_为什么Java堆的最大大小是固定的?
  11. java 重复代码优化_利用注解 + 反射消除重复代码(Java项目)
  12. 今日恐慌与贪婪指数为75 贪婪程度有所上升
  13. 手机号 验证函数 C++
  14. 点分十进制IP和网络字节序IP互转
  15. NDK开发Android端RTMP直播推流程序
  16. 无刷舵机、普通舵机等舵机的区别
  17. android如何设置自适应大小的背景图片,Android 背景图片自适应方案
  18. 服务器托管费用一般是多少
  19. HALCON学习论坛
  20. 集线器、路由器、交换机区别

热门文章

  1. netty java开发文档_Netty简明教学文档
  2. 怎么在计算机里找到CF里保存的视频,电脑怎么查看穿越火线录制保存视频?操作方法...
  3. linux core 永久生效,【调试】Core Dump是什么?Linux下如何正确永久开启?
  4. RuntimeException:java.lang.ClassNotFoundException: Class wordcount.WordCountMapper not fonud
  5. php自然排序法的比较过程,PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)...
  6. mysql查找大小写_mysql查询不区分大小写
  7. ccs变量观察窗口在哪_CCS3.3查看变量图形
  8. lasso回归_一文读懂线性回归、岭回归和Lasso回归
  9. java类加载过程_java类的加载过程
  10. 三星w系列vip服务器,高端人士候机专属特权 三星W2017一张行走的VIP卡