【问题标题】:How to create custom Button?如何创建自定义按钮?
【发布时间】:2017-02-17 20:21:05
【问题描述】:

我想在我的应用中创建一个自定义按钮,如下图所示:

这是来自应用程序的按钮,当我按下它时,另一个 Activity 会启动。

如何创建这样的按钮?
如有任何帮助,我将不胜感激。

已编辑:

button_back.xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >

<gradient
    android:angle="90"
    android:startColor="#4080FE"
    android:centerColor="#4080FE"
    android:endColor="#4080FE"
    android:type="linear" />

<corners
    android:radius="500dp"/>



<size
    android:width="40dp"
    android:height="40dp"
    />

在布局中:

<Button
    android:layout_width="wrap_content"
    android:layout_height="80dp"
    android:drawableLeft="@drawable/btn"
    android:background="@drawable/button_back" 

    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="94dp" />

这是输出:

我不想显示那些红色圆圈;我希望我的按钮和第一张图片一样,没有任何无聊。

感谢您的帮助。

上一版:

我使用 imageButton 而不是按钮,这对我来说是正确的解决方案。

【问题讨论】:

    标签: android android-layout button


    【解决方案1】:

    尝试这种方式来获得适合您视图的形状

    创建 go_btn.xml

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
    
        <gradient
            android:angle="90"
            android:startColor="#4080FE"
            android:centerColor="#4080FE"
            android:endColor="#4080FE"
            android:type="linear" />
    
        <corners
            android:radius="6dp"/>
    
    
    
        <size
            android:width="40dp"
            android:height="40dp"
            />
    
    
    </shape>
    

    然后将其添加到您的布局中

    <ImageView
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:padding="10dp"
            android:src="@drawable/autoorder"
            android:background="@drawable/go_btn"
            android:layout_gravity="center"
    android:layout_marginTop="10dp"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Calender"
            android:layout_gravity="center"
            />
    

    输出

    【讨论】:

    • 谢谢你,我应该在哪里添加这个“go_btn.xml”?在drawable文件夹中?
    • 我觉得这不像一个按钮,我怎么能把它当成一个按钮呢?
    • 你可以像按钮一样使用它,你会得到和按钮一样的所有方法
    • 有什么问题??
    • 显示您的代码...在您的屏幕截图中,两种布局都不同..您到底想达到什么目的..给出简要说明
    【解决方案2】:

    您可以使用TextView 来创建类似这样的内容

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/base"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/white"
        android:orientation="horizontal">
    
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:drawableTop="@drawable/checked"
            android:gravity="center"
            android:text="Calander" />
    </RelativeLayout>
    

    【讨论】:

      【解决方案3】:

      我认为你最好使用 TextView 并为其设置 drawableTop,如下所示

      <TextView
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:drawableTop="@drawable/calendar"
          android:textSize="@dimen/textSizeSmall_SP"
          android:textColor="@color/textColor"
          android:gravity="center"
          android:text="Calender"
          android:paddingLeft="@dimen/smallMargin_SP"
          android:paddingRight="@dimen/smallMargin_SP"
          android:background="@drawable/green_border_no_corners"/>
      

      【讨论】:

        【解决方案4】:

        有很多不同的方法:

        创建一个带有圆角的新LayerList 和您的Drawable,如下所示: https://stackoverflow.com/a/21002306/5778152

        然后在您的 XML 文件中,创建 Button 并使用您创建的 LayerList

        或者你可以创建一个LinearLayout,使用一个圆角的形状作为背景,在里面添加一个ImageView来设置你的图标

        【讨论】:

          【解决方案5】:

          创建一个xml资源文件并将这个资源添加到按钮背景属性中:-)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-12-27
            • 1970-01-01
            • 2013-10-07
            • 2012-12-14
            相关资源
            最近更新 更多