问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

android中带图标的按钮(ImageButton)怎么用18

发布网友 发布时间:2023-10-01 23:25

我来回答

4个回答

热心网友 时间:2024-11-15 14:53

除了Android系统自带的Button按钮以外,还提供了带图标的按钮ImageButton
要制作带图标的按钮,首先要在布局文件中定义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
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="ImageButton测试案例"
/>
<ImageButton
android:id="@+id/imagebutton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon1"
/>
<ImageButton
android:id="@+id/imagebutton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<ImageButton
android:id="@+id/imagebutton3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<ImageButton
android:id="@+id/imagebutton4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>

热心网友 时间:2024-11-15 14:53

跟普通的按钮一样使用,定义,activity中调用资源显示,添加*,
主要区别就是这个按钮要添加一个图片资源。这个可以在xml文件中解决
android:src=“@drawable/fdafsafdsaf”追问谢谢你
我还想问,我想让界面里德三行按钮同行距,并且占整个界面,我该怎么做?

追答三行按钮是每一行就一个按钮吗?
(1)只有三个的话你把每一个按钮的高度android:layout_width=0;然后用
android:layout_weight=百分比。
每个按钮都这样,保证所有的加起来等于百分百。这样比较方便的占据整个界面。

(2)还有一种方法就是高度android:layout_width=match_parent.这样更容易填满整个界面。

至于行间距的话我回去试验下再说吧。上面的方法是理论上的我也没有试过,你试试应该是可以的。试出来麻烦也告诉我下谢谢。

热心网友 时间:2024-11-15 14:53

跟普通的按钮一样使用,定义,activity中调用资源显示,添加*,
主要区别就是这个按钮要添加一个图片资源。这个可以在xml文件中解决
android:src=“@drawable/fdafsafdsaf”

热心网友 时间:2024-11-15 14:54

就和普通的button差不多的,都是继承于View,用法都一样。
等于就是一张图,可以设置点击事件,进行相应的处理。其实说来用Button也可以,加上background属性就行了,直接用imageview也行,也可以加OnClickListener。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 黑龙江债权转让合同纠纷该怎样取证 安徽债权转让合同纠纷应该怎么样取证 房产官司律师费多少 这些中药配在一起煮水喝,可以吗?2 微信搜索对方为什么搜不到? 曲臣氏的绿茶面膜真的能控油吗 能天天做不拜托了各位 谢谢 劲舞团结婚要买的东西要花多少钱?(细) 信不由中,质无益也。明恕而行,要之以礼,虽无有质,谁能间之?... HTML button怎么添加图片1 求G线上的魔王CG全CG存档6 求一种动物! 音乐游戏:大象和小兔 怎么在android中实现按钮的图片在点击后变成另外一个?26 刚认识一个男人的时候对你很好,久了就变脸了,为什么? 这是什么药草 可以煮水喝吗 有什么功效 生的何首乌煮水喝会怎么样 建设银行信用卡刷卡消费钱已扣,但商户收不到款是怎么回事啊1 怎么找回原来注册的? 同一个手机号怎么找回原来的? 五上数学四年级同学排队做操,每行12人,正好排4行,如果每行少排4人... 我想在空闲时间去一些地方做工,主要是想锻炼英语... 四川省建筑技工学校专业科政教员工作职责 家里的是台式电脑。没有宽带、能不能用无线网卡上网 机动车选号怎么选新车? 拿个斧子,后面可以跟个人物保自己是什么游戏 广西来宾摩托车在哪过户 卖二手电动车要给行驶证吗 装修12平米的房间做工作室,多少钱 我的被别人注销了怎么找回来? wxid但搜不到怎么加好友 ...的淘宝账户和支付宝买东西用的我的银行卡快捷支付有问题吗?安全吗... 王者荣耀竖着的名字复制代码分享 竖名使用方法 喜欢一个颜值不高的男生,但是周围的朋友不怎么希望我和他在一起,认为... 微博怎么注销 王者荣耀竖着的名字复制代码分享 竖名使用方法 1.商业银行参与一般公司治理的方式主要有哪些?这些方式在全球 佛山机动车转移登记办理流程及相关信息有什么 三四班同学做操如果每行14人可以站6行!如果每行站12人可以站几行? windows网络上找不到打印机的驱动程序 如何关闭腾讯微博账号 (2014?海淀区模拟)如图甲为电视机显像管的整体结构示意图,其左端尾部... wxid开头的怎么搜索不到 一间长十二米宽四米的房间改成洗车房装修成本大概是多少