1

我使用画廊来显示联系人的信息,在项目视图上,有两个按钮,我使用选择器作为他们的背景,现在这是问题,我触摸这两个按钮的区域,这两个按钮将改变背景看起来就像他们都被压制了一样。这是画廊项目

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:background="#505050"
  >
  <ImageView 
    android:id="@+id/phone_contact_image"
    android:layout_height="160dip"
    android:layout_width="160dip"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="25dip"
    android:src="@drawable/contact_phone_image_1"
    />
  <TextView  
    android:id="@+id/phone_contact_name"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    android:textSize="25dip"
    android:layout_below="@id/phone_contact_image"
    android:layout_marginTop="10dip"
    android:gravity="center_horizontal"
    android:textColor="#FFFFFF"
    />
  <TextView
    android:id="@+id/phone_contact_numbler"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textSize="25dip"
    android:gravity="center_horizontal"
    android:layout_below="@id/phone_contact_name"
    android:text="@string/contact_phone_numbler"
    android:textColor="#FFFFFF"
    />
  <Button 
    android:id="@+id/phone_contact_edit_btn"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:text="@string/editContact_title_edit"
    android:textSize="28dip"
    android:background="@drawable/btn_button_bg"
    android:layout_marginLeft="30dip"
    android:layout_marginRight="30dip"
    android:layout_marginTop="10dip"
    android:textColor="#FFFFFF"
    android:layout_below="@id/phone_contact_numbler"
    />
  <Button 
    android:id="@+id/phone_contact_call_btn"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:text="@string/title_call_via"
    android:textSize="28dip"
    android:background="@drawable/btn_confirm_bg"
    android:layout_marginTop="20dip"
    android:layout_marginLeft="30dip"
    android:layout_marginRight="30dip"
    android:textColor="#FFFFFF"
    android:layout_below="@id/phone_contact_edit_btn"
    />
</RelativeLayout>

这是选择器

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:drawable="@drawable/btn_button_focus" />
    <item android:state_pressed="true" android:drawable="@drawable/btn_button_pressed" />
    <item android:drawable="@drawable/btn_button_normal" />
</selector>
4

1 回答 1

0

你说的对。但是您没有提到当状态未按下或未聚焦且未选中时,您将做什么?

试试这个: 在你的 res.values 文件夹中创建一个 styles.xml 文件 并添加它。

 <style name="styleNormalButton">
        <item name="android:background">@drawable/backgroundbutton</item>
    </style>

考虑这@drawable/backgroundbutton.xml是您的选择器文件并在其中添加以下代码。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:drawable="@drawable/btn_button_focus" />
    <item android:state_pressed="true" android:drawable="@drawable/btn_button_pressed"/>

    <item android:drawable="@drawable/btn_default_pressed_holo_dark"
      android:state_enabled="false" />
    <item android:drawable="@drawable/btn_button_normal" />
</selector>

最后进入你的layout文件。将按钮的背景设置为style/styleNormalButton

希望对你有帮助

于 2012-09-10T03:53:32.960 回答