【问题标题】:Change Button Shape on selected State?更改所选状态的按钮形状?
【发布时间】:2015-09-15 09:30:37
【问题描述】:

我有一个 Android 按钮:

<Button
       android:layout_width="wrap_content"
       android:layout_height="44dp"
       android:background="@drawable/action_button" />

action_button.xml 是:

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

    <padding
        android:left="25dp"
        android:right="25dp"/>

    <gradient
        android:angle="0"
        android:endColor="@color/whiteColor"
        android:startColor="@color/whiteColor"/>

    <corners android:radius="@dimen/borderRadius"/>

    <stroke
        android:width="2px"
        android:color="@color/actionColor"/>
</shape>

按下按钮时如何更改形状?

【问题讨论】:

    标签: java android android-studio android-button


    【解决方案1】:

    您好,请使用下面的选择器并根据您的需要进行更改

    选择器.xml

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android" >
       <!-- <item android:state_enabled="false"
              android:drawable="@drawable/cyan_strip" />
        <item android:state_pressed="true"
              android:drawable="@drawable/cyan_strip" />
        <item android:state_pressed="false" android:state_focused="true"
              android:drawable="@drawable/cyan_strip" />
        <item android:drawable="@drawable/black_strip" /> -->
    
        <item android:state_enabled="false">
            <shape>
            <solid
                android:color="#4ec9d9" />
            <stroke
                android:width="1dp"
                android:color="#FFFFFF" />
            <padding
                android:left="1dp"
                android:top="1dp"
                android:right="1dp"
                android:bottom="1dp" />
        </shape>
        </item>
    
        <item android:state_pressed="true">
            <shape>
            <solid
                android:color="#4ec9d9" />
            <stroke
                android:width="1dp"
                android:color="#FFFFFF" />
            <padding
                android:left="1dp"
                android:top="1dp"
                android:right="1dp"
                android:bottom="1dp" />
        </shape>
        </item>
    
        <item android:state_pressed="false" android:state_focused="true">
            <shape>
            <solid
                android:color="#4ec9d9" />
            <stroke
                android:width="1dp"
                android:color="#FFFFFF" />
            <padding
                android:left="1dp"
                android:top="1dp"
                android:right="1dp"
                android:bottom="1dp" />
        </shape>
        </item>
    
        <item android:state_selected="true">
            <shape>
            <solid
                android:color="#4ec9d9" />
            <stroke
                android:width="1dp"
                android:color="#FFFFFF" />
            <padding
                android:left="1dp"
                android:top="1dp"
                android:right="1dp"
                android:bottom="1dp" />
        </shape>
        </item>
    
        <item >
           <shape>
            <solid
                android:color="#000000" />
            <stroke
                android:width="1dp"
                android:color="#FFFFFF" />
            <padding
                android:left="1dp"
                android:top="1dp"
                android:right="1dp"
                android:bottom="1dp" />
        </shape> 
        </item>
    
    </selector>
    

    【讨论】:

      【解决方案2】:

      你需要一个选择器

      <?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/action_button_pressed" />
          <item android:drawable="@drawable/action_button" />
      </selector>
      

      将其放入xml 文件中的drawable/ 下,并将其用作Button 的背景。 Android 将负责其余的工作

      【讨论】:

        【解决方案3】:

        见: Link

        <shape xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="rectangle">
            <gradient
                android:startColor="#302226"
                android:endColor="#6D7B8D"
                android:angle="45"/>
            <padding android:left="6dp"
                android:top="6dp"
                android:right="6dp"
                android:bottom="6dp" />
            <corners android:radius="30dp" />
        
        </shape>
        

        或见:

         <ImageButton
                         android:id="@+id/imageButton1"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:src="@drawable/shape_oval" />
        

        Shape_oval 是一张我们可以从谷歌搜索中获取的图像,或者我们可以在 Paint 或 photoshop 中绘制自己的图像。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-08-01
          • 2018-07-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多