【问题标题】:adding a click effect to my button in android在android中为我的按钮添加点击效果
【发布时间】:2014-09-02 21:57:42
【问题描述】:

我为我的布局制作了一个自定义按钮,但问题是它没有显示 onclick 效果。 这是我构建的三个 xml 文件 我给了一个椭圆形的按钮你能告诉我如何把按钮做成一个圆形并且尺寸更小吗? 提前谢谢

<TextView
    android:id="@+id/textView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="0"
    android:gravity="center"
    android:textSize="25sp" />

<Spinner 
    android:id="@+id/spin"
  android:gravity="center"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:spinnerMode="dropdown"
    android:text="heyyy"
    android:layout_below="@+id/textView1"
    />

<Button
    android:layout_marginTop="20dp"
    android:id="@+id/button1"
    android:layout_width="match_parent"
    android:layout_height="150sp"
    android:text="add"
    android:gravity="center" 
    android:layout_centerHorizontal="true"
     android:layout_below="@+id/spin"
     android:background="@drawable/button_xml"
     />
 <TextView
    android:id="@+id/textView2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
  android:layout_alignLeft="@+id/textView3"
  android:layout_below="@+id/button1"
    android:gravity="left"
    android:textSize="25sp"
    android:text="add" />

  <TextView
    android:id="@+id/textView3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
  android:layout_below="@+id/button1"
    android:gravity="right"
    android:textSize="25sp"
     android:text="a" />
   <Button
    android:layout_marginTop="20dp"
    android:id="@+id/button2"
    android:layout_width="match_parent"
    android:layout_height="50sp"
    android:text="reset"
    android:gravity="center" 
    android:layout_centerHorizontal="true"
     android:layout_below="@+id/textView3"/>

</RelativeLayout>
</ScrollView>

button_xml.xml

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

>
<solid 
android:color="#03A89E"/>
<stroke android:width="2dp" 
        android:color="#ffffff"/>

</shape>

button_click.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_xml"
    />
</selector>

【问题讨论】:

  • 将默认状态drawable添加到您的选择器项并将按钮背景从android:background="@drawable/button_xml"更改为android:background="@drawable/button_click"

标签: android xml button


【解决方案1】:

这里是按钮选择器的完整 XML 代码

button_normal.xml

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

       <solid android:color="@color/button_light_green"/>
        <corners android:radius="5dp" />

</shape>

button_selected.xml

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

       <solid android:color="@color/button_light_green_selected"/>
        <corners android:radius="5dp" />

</shape>

button_bg.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_selected"/>
    <item android:state_focused="true" android:drawable="@drawable/button_selected"/>
    <item android:drawable="@drawable/button_normal"/> 
</selector>

最后将它添加到您的按钮背景中...

<Button
android:layout_marginTop="20dp"
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="150sp"
android:text="add"
android:gravity="center" 
android:layout_centerHorizontal="true"
android:layout_below="@+id/spin"
android:background="@drawable/button_bg"/> <!-- Add Selector File here to have click effect -->

【讨论】:

  • 如果是自定义图片呢?
  • @4127157 在选择器中选择可绘制的图像而不是可绘制的形状。
【解决方案2】:

将按钮背景设置为包含状态的xml:

android:background="@drawable/button_click"

【讨论】:

    【解决方案3】:

    您的按钮的android:background 应设置为您的选择器(button_click.xml)。

    <Button
        android:layout_marginTop="20dp"
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="150sp"
        android:text="add"
        android:gravity="center" 
        android:layout_centerHorizontal="true"
        android:layout_below="@+id/spin"
        android:background="@drawable/button_click"/>
    

    【讨论】:

      【解决方案4】:

      我认为我的选择器对你有用。我在我的项目中制作了自己的按钮选择器。 “item_pressed”、“item_focused”和“item_normal”是用于显示按钮的图像。

      <?xml version="1.0" encoding="utf-8"?>
      <selector xmlns:android="http://schemas.android.com/apk/res/android"
          android:dither="true">
      
          <item 
              android:state_pressed="true"
              android:drawable="@drawable/item_pressed"/>
          <item 
              android:state_focused="true"
              android:drawable="@drawable/item_focused"/>
          <item
              android:drawable="@drawable/item_normal"/>
      
      </selector>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-05-25
        • 1970-01-01
        • 2011-11-02
        • 2021-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多