2012-06-24 15 views
10

Así que soy nuevo en el desarrollo de Android ... ¿Cómo puedo crear una imagen que actúa como botón, por lo que cuando presiono esa imagen, la imagen comienza una actividad específica. así que quiero esto para mostrar como imagen:¿Cómo crear botón de imagen en Android?

<Button 
    android:id="@+id/button1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginTop="33dp" 
    android:text="Button" /> 
+0

que significa un ImageButton http://developer.android.com/reference/android/widget/ImageButton.html – MikeIsrael

+1

Hay un control específicamente para esto en Android. Haga una búsqueda en Google antes de publicar su pregunta. – Ronnie

Respuesta

21

Crear ImageButton como:

En main.xml:

<ImageButton android:id="@+id/ib" 
    android:src="@drawable/bookmark" <-- SET BUTTON IMAGE HERE --> 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
/> 

En código de pieza:

ImageButton ib=(ImageButton)findViewById(R.id.ib); 
ib.setOnClickListener(ibLis); 
    } 
    private OnClickListener ibLis=new OnClickListener(){ 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      //START YOUR ACTIVITY HERE AS 
      Intent intent = new Intent(YOUR_CURRENT_ACTIVITY.this,NextActivity.class); 
      startActivity(intent, 0); 
     } 
    }; 

EDIT:

y la segunda opción si desea crear una imagen como botón utilizando el botón Ver a continuación, crear un botón personalizado como:

En primer lugar poner las todas las imágenes como por prensado, centrada y predeterminada en res/carpeta estirable y luego añadir una newbtn .xml en dibujable/newbtn.xml como:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" 
      android:drawable="@drawable/button_pressed" /> <!-- pressed --> 
    <item android:state_focused="true" 
      android:drawable="@drawable/button_focused" /> <!-- focused --> 
    <item android:drawable="@drawable/button_normal" /> <!-- default --> 
</selector> 

Finalmente en el botón XML establece android:background como:

<Button  
    android:id ="@+id/btn" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Hello" 
    android:textColor="#ffffffff" 
    android:background="@drawable/newbtn" <-- get button background to selector --> 
    /> 

Ver este tutorial para crear botón personalizado con imágenes

Creating custom, fancy buttons in Android

+0

mi fuerza de aplicación se cierra cuando aplico el código ImageButton – user1414682

+0

@ user1414682: por favor edite su publicación con el código más reciente y xml –

+0

@ user1414682: asegúrese de registrar segunda actividad en manifest como

0

Con el elemento ImageView, adjuntando un detector de clics a la misma.

El XML:

<ImageView 
    android:id="@+id/myImageView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/myPic" 
    /> 

El código:

ImageView imageView = (ImageView) findViewById(R.id.myImageView); 
imageView.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Intent intent = new Intent(ThisActivity.this, MyOtherActivity.class); 
     startActivity(intent); 
    } 
}); 

También es posible usar un ImageButton (de la misma manera). Casi no hace diferencia. Puedes ver más detalles aquí. Difference between a clickable ImageView and ImageButton