按下时更改图像按钮

时间:2012-09-16 10:20:20

标签: android xml android-layout android-button

我想制作图像按钮,所以按下时我会将未按下的图像替换为按下的按钮图像,然后转到其他活动。我有两个不同的可绘画图像。

我有两个xml文件:

首先加载主要活动:背景和图像按钮

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:background="@android:color/black"
 android:orientation="vertical" >



<ImageButton
    android:id="@+id/b1_l"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/s1"
    android:scaleType="centerCrop"  
    android:background="@color/trans"

    android:src="@drawable/b1_l" />

</RelativeLayout>
第二个:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

   <item android:state_pressed="false"
   android:drawable="@drawable/image_not_pressed" />

   <item android:state_pressed="true"
   android:drawable="@drawable/image_pressed"" />

</selector>

除了我的xml,还需要编写什么代码? 或者我可以传递xml并仅将其写为代码......?

谢谢!

2 个答案:

答案 0 :(得分:1)

你需要通常具有可按下和默认(未按下)状态的绘图。你可以使用这个(下面)的xml文件。您需要将此xml文件放在drawable文件夹中,然后在Button的情况下将其用作ImageButton的src或背景源。

让名称为mybutton.xml

<?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="true" 
                android:drawable="@drawable/your image name" /> 
    <item android:state_focused="false" android:state_pressed="true" 
                android:drawable="@drawable/your image name" /> 
    <item   android:drawable="@drawable/your image name" /> 
</selector> 

您为主要活动布置文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:background="@android:color/black"
 android:orientation="vertical" >



<ImageButton
    android:id="@+id/b1_l"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/s1"
    android:scaleType="centerCrop"  
    android:background="@color/trans"

    android:src="@drawable/mybutton" />

</RelativeLayout>

答案 1 :(得分:0)

您可能想查看此

上的Android开发者指南

http://developer.android.com/guide/topics/ui/controls/button.html