开发者

how to use an image as a button

this should be an easy one and I really thought that what I was doing was correct but apparently it isn't. I have an image that I want to use as a button, I have the button created and working. But now I just want this image to show up instead of the standatd android "but开发者_如何学运维ton".

Anyone know how to do this?


Make a use of <selector

Create in your drawable-hdpi folder xml file called button_image.xml

and add the following lines:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/picture" /> 
    <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/picture_pressed" /> 
    <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/picture_pressed" /> 
    <item android:drawable="@drawable/picture" /> 
</selector>

and then in your main xml where you declare your button add this line

android:background="@drawable/button_image"

And then you get effect of reall button. Note that you need two pictures to get effect of button being clicked.

If you dont want to use the selector and use just picture instead then just

android:background="@drawable/myimage"


Use ImageButton class.


You can Use ImageButtons instead of regular buttons

The just set your background from your image in your XML

<ImageButton android:background="@drawable/mypicture"/>

A nice tutorial is Here


Follow me, You can use many controls in android to solve this problem (Button, ImageView, ImageButton, or even TextView ... ). Just sets an image as its background and then implements OnClickListener to handle click event.

Example, with ImageView, - in layout file:

      <ImageView
            android:id="@+id/button_login"
            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:background="@drawable/button_login"
        />
  • in behind-code file:

        ImageView login;
    login = (ImageView) findViewById(R.id.button_login);
    login.setOnClickListener(new OnClickListener() {
    
        public void onClick(View v) {
            //TODO: your code here
        }
    });
    


You need to write the android:background="@drawable/my_pic" to your xml file at the button. Where my_pic is your pic's name. Hope it helps you.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜