2011-05-24 33 views
1

在我的布局xml文件中,我创建了一个屏幕,其中有三个按钮,背景为 ,现在当用户单击它时。它没有显示任何被点击的标志 我怎样才能达到这个目的?按钮如何专注于点击在Android

在此先感谢

+0

你设置onClickListener? – BadSkillz 2011-05-24 12:47:58

+1

我认为你应该在发布问题前谷歌。这已在很多不同的地方得到解答。 – Hades 2011-05-24 12:49:43

+0

你好哈迪斯我已经搜索了很多次,但我没有得到任何满意的答案。其实我的问题有些不同。我有一个带有背景图像的按钮。所以当我点击它时,它不会显示任何焦点或任何颜色变化。希望你得到我的问题。 – sandy 2011-05-26 09:36:31

回答

1

这是答案。

以表示不同的按钮状态(突出重点,选择等),你可以定义不同的图像的每个状态

保存在您的项目RES /绘制/文件夹,然后引用它作为一个XML文件可绘制的ImageButton的源代码(在android:src属性中)。 Android将根据按钮的状态和XML中定义的相应图像自动更改图像。

<?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> 
3

不知道,但,我们需要通过XML设置悬停

<item 
     android:color="hex_color" 
     android:state_pressed=["true" | "false"] 
     android:state_focused=["true" | "false"] 
     android:state_selected=["true" | "false"] 
     android:state_checkable=["true" | "false"] 
     android:state_checked=["true" | "false"] 
     android:state_enabled=["true" | "false"] 
     android:state_window_focused=["true" | "false"] /> 
+0

嗨hasrhagile,我试过了,但它不工作。 – sandy 2011-05-26 09:37:29

0

大家好我设法找到自己的答案。 我做了什么

final Button home = (Button) findViewById(R.id.btnmaphome); 
    home.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      home.setBackgroundResource(R.drawable.lodclick); 
      // rest of the code 
     } 
    }); 

在这里我还有一个形象,我把它作为背景,当按钮按下得到另一个图像设置为按钮背景和它看起来像按钮得到聚焦。对所有人都是。

0

使这三个xml文件在可绘制的文件夹中。 custom_background_focus.xml

{

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle" > 

    <stroke 
     android:width="1dp" 
     android:color="#111111" /> 

    <gradient 
     android:angle="225" 
     android:endColor="#fcfcfc" 
     android:startColor="#fcfcfc" /> 

    <corners 
     android:bottomLeftRadius="4dp" 
     android:bottomRightRadius="4dp" 
     android:topLeftRadius="4dp" 
     android:topRightRadius="4dp" /> 

</shape> 

custom_background_normal.xml

<?xml version="1.0" encoding="UTF-8"?> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="rectangle" > 

     <stroke 
      android:width="1dp" 
      android:color="#333333" /> 

     <gradient 
      android:angle="225" 
      android:endColor="#999999" 
      android:startColor="#999999" /> 

     <corners 
      android:bottomLeftRadius="4dp" 
      android:bottomRightRadius="4dp" 
      android:topLeftRadius="4dp" 
      android:topRightRadius="4dp" /> 

    </shape> 

}

<?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/custom_background_focus" /> <!-- pressed --> 
    <item android:state_focused="true" 
     android:drawable="@drawable/custom_background_focus" /> <!-- focused --> 
    <item android:drawable="@drawable/custom_background_normal" /> <!-- default --> 
</selector>