【问题标题】:How to make circular button in android [duplicate]如何在android中制作圆形按钮[重复]
【发布时间】:2018-06-17 02:39:33
【问题描述】:

我有一个应用程序,我必须在其中制作我成功制作的圆形按钮,但是当我单击按钮然后更改背景可绘制时我想要什么,但是当我这样做时,那个圆形按钮变得不可见。我该怎么做

代码:-

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="oval">
        <stroke android:color="@color/colorPrimary" android:width="5dp" />
        <solid android:color="@color/colorPrimaryDark"/>
        <size android:width="150dp" android:height="150dp"/>
    </shape>
</item>

【问题讨论】:

  • 电池使用FloatingActionButton 为什么我们要添加额外的后缀
  • 但是如何根据浮动按钮中的数据改变文字和背景

标签: android


【解决方案1】:

使用它 - drawable/style_circular_button.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" >
        <shape android:shape="oval">
            <solid android:color="@color/colorDeepOrange"/>
            <size android:width="120dp" android:height="120dp"/>
        </shape>
    </item>
    <item android:state_focused="true">
        <shape android:shape="oval">
            <solid android:color="@color/colorOrange"/>
            <size android:width="120dp" android:height="120dp"/>
        </shape>
    </item>
    <item >
        <shape android:shape="oval">
            <solid android:color="@color/colorOrange"/>
            <size android:width="120dp" android:height="120dp"/>
        </shape>
    </item>
</selector>

并将style_circular_button.xml 设置在Button 的背景上 -

<Button
   android:id="@+id/btnSignin"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="@string/text_btn_login"
   android:background="@drawable/style_circular_button"/>

【讨论】:

    【解决方案2】:

    使用代码更改图像

    public void onClick(View v) {
       if(v == ButtonName) {
         ButtonName.setImageResource(R.drawable.ImageName);
       }
    }
    

    或者,使用 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/login_selected" /> <!-- pressed -->
      <item android:state_focused="true"
       android:drawable="@drawable/login_mouse_over" /> <!-- focused -->
      <item android:drawable="@drawable/login" /> <!-- default -->
    </selector>
    

    在 OnClick 中,只需添加以下代码:

    ButtonName.setBackgroundDrawable(getResources().getDrawable(R.drawable.ImageName));
    

    你可以使用这个drawable来获取desired circle

    UPDsetBackgroundDrawable 已弃用,请查看here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-04
      相关资源
      最近更新 更多