Android 自定义按钮button 加图片和两行文字
先上效果图
首先在drawable里建四个文件
1.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>
<!--色值-->
<solid android:color="#e79429" />
<!--圆角-->
<corners android:radius="10dp" />
</shape>
</item>
<!--默认背景-->
<item>
<shape>
<solid android:color="#f6aa3e" />
<corners android:radius="10dp" />
</shape>
</item>
</selector>
button_anothor.xml跟button.xml差不多,换个颜色就行。
这两个文件主要是设计按钮的背景颜色,点击后的变化,按钮的四个角变圆。
2.button_pic.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item >
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="50dp" android:height="50dp" android:drawable="@drawable/catalogue"/>
</layer-list>
</item>
</selector>
button_pic_another.xml照抄上面,改一下图片就行。
这两个文件主要是设计按钮上的图片,修改一下图的尺寸。
下面是应用的代码:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/one"
android:layout_width="190dp"
android:layout_height="100dp"
android:layout_marginTop="10dp"
android:layout_marginLeft="10dp"
android:background="@drawable/button"
android:drawableLeft="@drawable/button_pic"
android:paddingBottom="8dp"
android:paddingLeft="25dp"
android:paddingRight="25dp"
android:paddingTop="8dp"
android:text="分类\n\n catalog"
android:textColor="@color/white"
android:textSize="18sp" />
<Button
android:id="@+id/two"
android:layout_width="190dp"
android:layout_height="100dp"
android:layout_marginTop="10dp"
android:layout_marginLeft="10dp"
android:background="@drawable/button_anothor"
android:drawableLeft="@drawable/button_pic_anothor"
android:paddingBottom="8dp"
android:paddingLeft="25dp"
android:paddingRight="25dp"
android:paddingTop="8dp"
android:text="文章\n\n article"
android:textColor="@color/white"
android:textSize="18sp" />
</LinearLayout>
上面代码中文字那块用 \n 来换行实现了两行的效果。
其中color/white是
<color name="white">#FFFFFF</color>
这样就实现了上图的效果。