Android

时间:2017-09-01 00:27:14

标签: android button icons android-custom-view android-button

由于我是Android新手,我无法在1:

中创建如下所示的按钮

enter image description here

按钮应该拥有:

  1. 正常背景紫色,点击时应变为红色。 (实现)
  2. 按钮左上角的圆形图标,按钮中的半个图标和按钮外的图标的一半。
  3. 右上方按钮上的箭头图像。(已实现)
  4. 有没有办法在按钮的左上角实现此图标。每个按钮都有红色和紫色的图标图像。

    通过以下实现,我可以实现如上图2的第2部分中的结果:

    活动XML:

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <Button
            android:id="@+id/btn_ETOPUP"
            style="@style/btnServiceTheme"
            android:layout_marginTop="20dp"
            android:layout_marginBottom="10dp"
            android:text="@string/service_etopup"
            android:textAlignment="center" />
        <Button
            android:id="@+id/btn_QuickPay"
            style="@style/btnServiceTheme"
            android:layout_marginTop="10dp"
            android:layout_marginBottom="10dp"
            android:text="@string/service_QuickPay"
            android:textAlignment="center" />
        <Button
            android:id="@+id/btn_EVouchers"
            style="@style/btnServiceTheme"
            android:layout_marginBottom="20dp"
            android:layout_marginTop="10dp"
            android:text="@string/service_EVouchers"
            android:textAlignment="center" />
    </LinearLayout>
    

    样式XML:

    <style name="btnServiceTheme" parent="AppTheme">
    <item name="android:textSize">25sp</item>
    <item name="android:textAllCaps">false</item>
    <item name="android:textColor">@color/white</item>
    <item name="android:drawableRight">@mipmap/arrow_right_white</item>
    <item name="android:background">@drawable/button_service</item>
    <item name="android:layout_marginLeft">20dp</item>
    <item name="android:layout_marginRight">20dp</item>
    <item name="android:paddingTop">20dp</item>
    <item name="android:paddingBottom">20dp</item>
    <item name="android:paddingRight">25dp</item>
    <item name="android:drawablePadding">-25dp</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_width">match_parent</item>
    

    选择器XML:

        <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@color/purple" android:state_pressed="false" android:state_selected="false" />
        <item android:drawable="@color/red" android:state_pressed="true" />
        <item android:drawable="@color/red" android:state_pressed="false" android:state_selected="true" />
    </selector>
    

    提前致谢。

1 个答案:

答案 0 :(得分:1)

尝试将以下XML用作单独的布局组件:

<FrameLayout
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_gravity="center">

   <ImageView
       android:layout_width="35sp"
       android:layout_height="35sp"
       android:elevation="3dp"
       android:layout_marginLeft="5dp"
       android:scaleType="fitCenter"
       android:src="@drawable/ic_logo_bmw" />
   <Button
       android:id="@+id/btn_get_data"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_margin="10dp"
       android:background="@drawable/rectangular_bg"
       android:text="Quick-Pay"
       android:textColor="@android:color/white" />

</FrameLayout>

使用include标记在各自的XML布局中使用它。你的输出将是这样的:

enter image description here