这个没有图片怎么搞,要不自己画?两个半圆,一个矩形的四个圆角,一根虚线,组合一下吧:
order_pay_shape_left.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#fff"
/>
<!--实现半圆,别想了哥们儿,没哪个属性,用corners设置试一把-->
<corners
android:bottomLeftRadius = "0dp"
android:bottomRightRadius = "19dp"
android:topLeftRadius = "0dp"
android:topRightRadius = "19dp"/>
</shape>
order_pay_shape_right.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#fff"
/>
<corners
android:bottomLeftRadius = "19dp"
android:bottomRightRadius = "0dp"
android:topLeftRadius = "19dp"
android:topRightRadius = "0dp"/>
</shape>
order_details_background.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!--实现渐变 angle必须是45的倍数 0左到右 90下到上 180右到左 270上到下 -->
<gradient android:startColor="#FFE9CA" android:endColor="#FFDBAC"
android:angle="270"/>
<corners android:radius="4dip"/>
</shape>
order_details_lines.xml
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<stroke
android:color="#F1CB98"
android:width = "0.5dp"
android:dashGap = "2dp"
android:dashWidth = "3dp"/>
</shape>
main_test.xml
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_margin="17dip"
android:background="@drawable/order_details_background"
android:layout_width="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal"
android:layout_height="202dip">
<TextView
android:layout_marginTop="25dip"
android:textSize="25sp"
android:text="单价:¥500"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:layout_marginTop="70dip"
android:textSize="20sp"
android:text="姓名:张三"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:layout_marginTop="10dip"
android:textSize="16sp"
android:text="地址:北京市朝阳区望京西路225号"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_marginTop="104dip"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="wrap_content">
<ImageView
android:src="@drawable/order_pay_shape_left"
android:layout_width="34dip"
android:layout_height="35dip" />
<View
android:layout_gravity="center"
android:layout_marginLeft="5dip"
android:layout_marginRight="5dip"
android:background="@drawable/order_details_lines"
android:layout_width="0dip"
android:layout_weight="1"
android:layout_height="1dip"/>
<ImageView
android:src="@drawable/order_pay_shape_right"
android:layout_width="34dip"
android:layout_height="35dip" />
</LinearLayout>
</RelativeLayout>
再熟悉一下shape的属性吧:
solid
描述:内部填充
属性:android:color 填充颜色
size
描述:大小
属性:
android:width 宽
android:height 高
gradient
描述:渐变色
属性:
android:startColor渐变起始颜色
android:endColor渐变结束颜色
android:centerColor渐变中间颜色
android:angle 渐变的角度,angle=0时,渐变色是从左向右,然后逆时针方向转;当angle=90时,渐变色从上往下。angle必然是45的倍数
android:type 渐变类型:linear(线性)、radial(放射性,以开始色为中心)、sweep(扫描线式渐变)
android:userLevel如果要使用LevelListDrawable对象,就要设置为true。设置true无渐变色,false有渐变色
android:grdientRadial渐变半径,只有设置type为radial时,此值才生效
android:centerX 渐变中心X点坐标的相对位置
android:centerY 渐变中心Y点坐标的相对位置
stroke
描述:描边
属性:
android:width 描边宽度
android:color 描边颜色
android:dashwidth描边样式为虚线时的宽度,值为0时为实线,值大于0时为虚线
android:dashGap 描边为虚线时,虚线之间的间隔
corners
描述:圆角
属性:
android:radius 四个角半径值
android:topLeftRadius左上角半径值
android:topRightRadius右上角半径值
android:bottomLeftRadius右下角半径值
android:bottomRightRadius左下角半径值
padding
描述:内边距
属性:
android:left 左内边距
android:right 右内边距
android:top 上内边距
android:bottom 下内边距
虚线为什么不显示或者显示实线:
1.不显示:View的高度不能大于虚线的高度,设置View的高度大于shape中wieth的长度;
2.实线:在 AndroidManifest.xml中,android:hardwareAccelerated="false" 加到当前的Activity。