带右箭头的按钮

时间:2018-05-31 02:41:45

标签: android xml button material-design android-cardview

我正在尝试制作一个带右箭头的按钮。 我已经定义了一个带有按钮的卡片视图。但我不确定如何将箭头与它一起放置,如果它可以在xml中实现。 按钮应如下所示:

enter image description here

我的xml看起来像这样:

 <android.support.v7.widget.CardView
    android:id="@+id/signupCard"
    style="@style/CardView.Light"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:layout_marginBottom="18dp"
    android:layout_marginEnd="29dp"
    android:layout_marginLeft="29dp"
    android:layout_marginRight="29dp"
    android:layout_marginStart="29dp"
    android:layout_marginTop="198dp"
    app:layout_constraintBottom_toTopOf="@+id/loginCard"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <Button
        android:id="@+id/signup"
        style="@style/Widget.AppCompat.Button.Borderless"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/background_light"
        android:minWidth="0dp"
        android:paddingEnd="8dp"
        android:paddingStart="8dp"
        android:scaleType="center"
        android:text="@string/signUp"
        android:textColor="#DE000000" />
</android.support.v7.widget.CardView>

7 个答案:

答案 0 :(得分:2)

尝试使用此布局。 它适用于你的情况。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.v7.widget.CardView
    android:id="@+id/signupCard"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="18dp"
    android:layout_marginEnd="29dp"
    android:layout_marginLeft="29dp"
    android:layout_marginRight="29dp"
    android:layout_marginStart="29dp"
    android:layout_marginTop="198dp"
    app:cardCornerRadius="@dimen/d5dp"
    app:cardElevation="@dimen/d10dp">
<Button
        android:id="@+id/signup"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_margin="@dimen/d50dp"
        android:background="@android:color/background_light"
        android:drawablePadding="@dimen/d30dp"
        android:drawableEnd="@drawable/icon_right_aero_black"
        android:minWidth="0dp"
        android:scaleType="center"
        android:text="Login"
        android:textColor="#DE000000" />
</android.support.v7.widget.CardView>
</RelativeLayout>

CardView Inside Button with Right aero

答案 1 :(得分:0)

您可以通过xml中的android:drawableRight来实现此目的,只是为了获取信息,此属性也可以编程方式分配给视图,因为您必须使用setCompoundDrawablesWithIntrinsicBounds(int,int,int,int)
这里是params arre

setCompoundDrawablesWithIntrinsicBounds(int /*FOR LEFT DRAWABLE*/,int/*FOR TOP DRAWABLE*/,int/*FOR RIGHT DRAWABLE*/,int/*FOR BOTTOM DRAWABLE*/)

如果您不想设置drawable,请将0传递给它

所以要知道你只需使用android:drawableRight属性

在xml中使用第一个方法

答案 2 :(得分:0)

试试这段代码: 您可以通过右键单击可绘制&gt;来获取该图像&gt; 矢量 资产&gt; 剪贴画

<Button
    android:id="@+id/signup"
    ...
    android:drawableRight="your image"
    ...
    android:textColor="#DE000000" />

答案 3 :(得分:0)

您可以使用button drawable right或drawable end属性来设置图像: 此外,您可以使用填充属性将填充应用于可绘制图像。

<Button
      android:id="@+id/imgButton"
      android:text="imageButton"
      android:drawableRight="@drawable/your_image"
      android:drawableEnd="@drawable/your_image"
      android:drawablePadding="@dimen/padding_10dp"
      android:textColor="@color/colorButton" />

答案 4 :(得分:0)

你可以去哥们,

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
card_view:cardCornerRadius="5dp"
card_view:cardElevation="3dp"
android:layout_marginBottom="18dp"
android:layout_marginEnd="29dp"
android:layout_marginLeft="29dp"
android:layout_marginRight="29dp"
android:layout_marginStart="29dp"
android:layout_marginTop="198dp"
card_view:cardPreventCornerOverlap="false"
card_view:cardUseCompatPadding="true"
>
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Login"
    android:background="@color/white"
    android:drawableRight="@drawable/ic_chevron"/>

答案 5 :(得分:0)

你可以很简单 首先,你需要一个从官方谷歌网站获得的矢量图标 Material Icons

然后你会得到一个rar,你可以将每种类型的drawable提取到你的android项目的mipmap文件夹

你将从rar文件获得的

文件是

  

抽拉-HDPI   ,绘制,MDPI   ,绘制,xhdpi   ,绘制,xxhdpi   抽拉-xxxhdpi

分别复制mipmap-hdpi,mipmap-mdpi,mipmap-xhdpi,mipmap-xxhdpi和mipmap-xxxhdpi中包含此文件夹的图像

现在你已经有了图标了

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Login"
android:background="@color/white"
android:drawableRight="@mipmap/yourIconName"/>

答案 6 :(得分:0)

         <android.support.v7.widget.CardView 
                      xmlns:android="http://schemas.android.com/apk/res/android"
                        xmlns:card_view="http://schemas.android.com/apk/res- 
                         auto"
                        android:id="@+id/cardview1"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:layout_margin="12dp"
                        android:layout_marginRight="7dp"
                        android:layout_marginTop="25dp"
                        android:clickable="true"
                        android:foreground="? 
                        android:attr/selectableItemBackground"
                        card_view:cardBackgroundColor="@color/White"
                        card_view:cardCornerRadius="7dp"
                        card_view:cardElevation="7dp"
                        card_view:cardMaxElevation="7dp"
                        card_view:contentPadding="7dp">

                        <RelativeLayout
                            android:layout_width="fill_parent"
                            android:layout_height="wrap_content"
                            android:orientation="horizontal"
                            android:padding="5dp">



                            <TextView
                                style="@style/TextColor"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_alignParentStart="true"
                                android:layout_centerVertical="true"
                                android:layout_gravity="center"
                                android:layout_marginStart="64dp"
                                android:paddingLeft="10dp"

                                android:text="@string/MySchool"
                                android:textSize="20dp"
                                tools:ignore="RtlCompat" />

                            <ImageButton
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_alignParentEnd="true"
                                android:layout_centerVertical="true"

                                android:layout_marginEnd="24dp"
                                android:background="@color/tranbackground"

                    android:src="@drawable/ic_keyboard_arrow_right_black_24dp"
                                tools:ignore="RtlCompat" />
                        </RelativeLayout>
                    </android.support.v7.widget.CardView>