Android:点击时如何照亮按钮的图像?

时间:2014-01-10 13:23:01

标签: android xml

我知道当单击一个按钮(没有背景)时,它会改变颜色,然后流程转到它的onClickListner。但是当我将一个图像设置为按钮时,它就不一样了。我希望可以在按钮中使用图像,使其看起来很漂亮。

我知道它与造型有关,但不知道使用什么样的风格, 下面是我按钮的xml代码。

<Button
    android:id="@+id/supplier"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="160dp"
    android:layout_height="60dp"
    android:layout_alignLeft="@id/two_player"
    android:layout_alignTop="@id/two_player"
    android:layout_marginTop="75dp"
    android:background="@drawable/supplier" />

2 个答案:

答案 0 :(得分:3)

在drawable文件夹中创建一个buttonselector,然后将其设置为按钮背景

<强> btnselector.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/btn_bg_clicked" /> <!-- pressed -->
 <item android:state_focused="true"
       android:drawable="@drawable/btn_bg" /> <!-- focused -->
 <item android:drawable="@drawable/btn_bg" /> <!-- default -->
</selector>

现在将此设置为按钮背景,如

<Button
android:id="@+id/supplier"
style="?android:attr/buttonStyleSmall"
android:layout_width="160dp"
android:layout_height="60dp"
android:layout_alignLeft="@id/two_player"
android:layout_alignTop="@id/two_player"
android:layout_marginTop="75dp"
android:background="@drawable/btnselector" />

我想你明白了......

答案 1 :(得分:1)

您必须使用选择器来实现这一目标。

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

  <!--  Inactive tab -->
  <item 
    android:state_selected="false"
    android:state_focused="false"
    android:state_pressed="false"
    android:drawable="@drawable/tab_bg_unselected" />

  <!--  Pressed tab -->
  <item 
    android:state_pressed="true"
    android:drawable="@drawable/tab_bg_pressed" />

  <!--  Selected tab (using d-pad) -->
  <item
    android:state_focused="true"
    android:state_selected="true"
    android:state_pressed="false"
    android:drawable="@android:color/transparent" />
</selector>

假设上面的文件名为bg_selector,则将其设置为要提亮的对象的背景,在您的情况下,“按下的选项卡”就是您要查找的内容。在我的'tab_bg_pressed'中,您将定义另一个drawable,您可以将背景设置为提亮效果或任何您想要的效果。