如何在Imagebutton点击上有所作为

时间:2015-04-23 07:45:12

标签: android xml imagebutton

我使用下面的代码设计我的圆形按钮,然后我想在按钮上显示一些文字,所以我使用了Frame Layout,然后我在我的按钮上放了一些文字。 现在,Challange是我的按钮仍然是。它对点击没有任何影响 其中drawable和src都用于roundshape按钮,其他用于按钮上的图像(相应地)。

现在我的按钮不会对点击我如何产生效果的设计产生任何影响。

<FrameLayout>
<ImageButton
android:id="@+id/btn_profile_view"
android:layout_width="70dp"
android:layout_height="67dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="20dp"
android:layout_weight="1"
android:onClick="compareButtonClick"
android:background="@drawable/roundedbutton"
android:src="@drawable/ic_action_person" />
<TextView
android:layout_width="45dp"
android:layout_height="20dp"
android:layout_gravity="bottom"
android:layout_marginLeft="38dp"
android:clickable="false"
android:text="@string/profile"
android:textColor="@color/btn_txt" >
</TextView>
</FrameLayout>


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

<solid android:color="#D3D3D3" />

<corners
    android:bottomLeftRadius="8dip"
    android:bottomRightRadius="8dip"
    android:topLeftRadius="8dip"
    android:topRightRadius="8dip" />

3 个答案:

答案 0 :(得分:0)

在这里,您将获得点击回拨,您无需在任何地方设置点击监听器

public void compareButtonClick(View v){
    Toast.makeText(this, "Image Button Click", Toast.LENGTH_SHORT).show();
}

答案 1 :(得分:0)

这可能有所帮助,但您必须根据需要进行修改。

1)在roundedbutton.xml文件夹

中创建drawable
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >

<solid android:color="#D3D3D3" />

<corners
    android:bottomLeftRadius="8dip"
    android:bottomRightRadius="8dip"
    android:topLeftRadius="8dip"
    android:topRightRadius="8dip" />
</shape>

2)在button_normal.xml文件夹

中创建drawable
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:drawable="@drawable/roundedbutton" android:state_focused="true" android:state_pressed="true"/>
    <item android:drawable="@drawable/ic_launcher" android:state_focused="false" android:state_pressed="true"/>
    <item android:drawable="@drawable/ic_launcher" android:state_focused="true"/>
    <item android:drawable="@drawable/roundedbutton" android:state_focused="false" android:state_pressed="false"/>

    <!-- 2 and 3 pressed and selected -->


</selector>

3)添加button_normal.xml作为按钮的背景

android:background="@drawable/button_normal"

答案 2 :(得分:0)

使用不同的drawable创建一个选择器来处理不同的状态;启用,禁用,点击,聚焦等