Android ImageButton

分享到:

ImageButton控件和Button非常相似都是按钮,但ImageButton要比Button漂亮的多可以直接制作带图标的按钮,首先要在布局文件中定义ImageButton,然后通过setImageDrawable方法来设置按钮要显示的图标。同样需要对按钮设置事件监听 setOnClickListener,以此来捕捉事件并处理。 本章偷了个懒在网上找了一个例子感觉很不错直接分享,我们先看看这个例子的运行效果。

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/TextView01" 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:text="@string/hello" 
          /> 
        <ImageButton 
          android:id="@+id/ImageButton01" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:src="@drawable/button1" 
          /> 
        <ImageButton 
          android:id="@+id/ImageButton02" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:src="@drawable/button2" 
          /> 
        <ImageButton 
          android:id="@+id/ImageButton03" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:src="@drawable/button3" 
          /> 
        <ImageButton 
          android:id="@+id/ImageButton04" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content"/> 

</LinearLayout> 

java源码如下:

package com.my.androidtest;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.AlertDialog.Builder;
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 Activity01 extends Activity {

          TextView textView;
          ImageButton imageButton1,imageButton2,imageButton3,imageButton4;
          @Override
          public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
  
          textView = (TextView)findViewById(R.id.TextView01);
          imageButton1 = (ImageButton)findViewById(R.id.ImageButton01);
          imageButton2 = (ImageButton)findViewById(R.id.ImageButton02);
          imageButton3 = (ImageButton)findViewById(R.id.ImageButton03);
          imageButton4 = (ImageButton)findViewById(R.id.ImageButton04);
  
          //给按钮设置使用的图标,由于button1,button2,button3,已经在xml文件中设置了这里就不设置了
          imageButton4.setImageDrawable(getResources().getDrawable(android.R.drawable.sym_call_incoming));
  
          //以下分别为每个按钮设置事件监听 setOnClickListener
          imageButton1.setOnClickListener(new Button.OnClickListener(){
          public void onClick(View v) {
          //对话框   Builder是AlertDialog的静态内部类
          Dialog dialog = new AlertDialog.Builder(Activity01.this)
          //设置对话框的标题
          .setTitle("小航提示")
          //设置对话框要显示的消息
          .setMessage("我真的是ImageButton1")
          //给对话框来个按钮 叫"确定定" ,并且设置监听器 这种写法也真是有些BT
          .setPositiveButton("确定定", new DialogInterface.OnClickListener(){
         public void onClick(DialogInterface dialog, int which) {
          //点击 "确定定" 按钮之后要执行的操作就写在这里
          }
          }).create();//创建按钮
          dialog.show();//显示一把
          }
          });
  
          imageButton2.setOnClickListener(new Button.OnClickListener(){
          public void onClick(View v) {
          Builder dialog = new AlertDialog.Builder(Activity01.this);
          dialog.setTitle("提示");
          dialog.setMessage("我是ImageButton2,我要使用ImageButton3的图标");
          dialog.setPositiveButton("确定", new DialogInterface.OnClickListener(){
          public void onClick(DialogInterface dialog, int which) {
          //好了我成功把Button3的图标掠夺过来
          imageButton2.setImageDrawable(getResources().getDrawable(R.drawable.button3));
          }
          }).create();//创建按钮
          dialog.show();
          }
          });
  
          imageButton3.setOnClickListener(new Button.OnClickListener(){
          public void onClick(View v) {
          Builder dialog = new AlertDialog.Builder(Activity01.this);
          dialog.setTitle("提示");
          dialog.setMessage("我是ImageButton3,我要使用系统打电话图标");
          dialog.setPositiveButton("确定", new DialogInterface.OnClickListener(){
          public void onClick(DialogInterface dialog, int which) {
          //把imageButton3的图标设置为系统的打电话图标
          imageButton3.setImageDrawable(getResources().getDrawable(android.R.drawable.sym_action_call));
          }
          }).create();//创建按钮
          dialog.show();
          }
          });
  
          imageButton4.setOnClickListener(new Button.OnClickListener(){
          public void onClick(View v) {
          Builder dialog = new AlertDialog.Builder(Activity01.this);
          dialog.setTitle("提示");
          dialog.setMessage("我没钱买图标使用的是系统图标");
          dialog.setPositiveButton("确定", new DialogInterface.OnClickListener(){
          public void onClick(DialogInterface dialog, int which) {
  
          }
          }).create();//创建按钮
          dialog.show();
          }
          });
	}
}
昵    称:
验证码:

相关文档:

Android控件
Android基础知识
Android组件
Android实例