La forma de Android implementa la producción de tarjetas de pedido (la forma dibuja semicírculos y rectángulos con esquinas redondeadas, degradados y líneas de puntos (¿no se muestran?))

 ¿Cómo puedo hacer esto sin una imagen? ¿Qué tal si lo dibujo yo mismo? Dos semicírculos, cuatro esquinas redondeadas de un rectángulo y una línea de puntos, combinémoslo:

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>

orden_detalles_fondo.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>

prueba_principal.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>

Familiaricémonos nuevamente con los atributos de la forma:

     sólido

       Descripción: Acolchado interno

       Atributo: android:color color de relleno

      tamaño

       Descripción: Tamaño

       Atributos:

                 android: ancho ancho

                 android: altura

     degradado

        Descripción: color degradado

        Atributos:

                   android:startColor color inicial del degradado

                   android:endColor color final del degradado

                   android:centerColor degradado color medio

                   android:angle El ángulo del degradado. Cuando el ángulo = 0, el color del degradado es de izquierda a derecha y luego gira en sentido antihorario; cuando el ángulo = 90, el color del degradado es de arriba a abajo. El ángulo debe ser múltiplo de 45.

                   android:type tipo de gradiente: lineal (lineal), radial (radiactivo, centrado en el color inicial), barrido (gradiente de línea de escaneo)

                   android:userLevel debe establecerse en verdadero si desea utilizar el objeto LevelListDrawable. Establezca verdadero para no tener color degradado, falso para tener color degradado

                   android:grdientRadio de gradiente radial, este valor solo tiene efecto cuando el tipo se establece en radial

                   android:centerX posición relativa de las coordenadas del punto X del centro del gradiente

                   android:centerY posición relativa de las coordenadas del punto Y del centro del gradiente

    ataque

        Descripción: Accidente cerebrovascular

        Atributos:

                   android: ancho ancho de trazo

                   android: color trazo de color

                   android:dashwidth El ancho del estilo de trazo cuando es discontinuo. Cuando el valor es 0, es una línea continua. Cuando el valor es mayor que 0, es una línea discontinua.

                   android:dashGap Cuando el trazo es una línea de puntos, el intervalo entre las líneas de puntos

    esquinas

        Descripción: esquinas redondeadas

        Atributos:

                   android: radio valores de radio de cuatro esquinas

                   android: valor del radio de la esquina superior izquierda topLeftRadius

                   android: valor del radio de la esquina superior derecha topRightRadius

                   android:bottomLeftRadius valor del radio de la esquina inferior derecha

                   android:bottomRightRadius valor del radio de la esquina inferior izquierda

    relleno

        Descripción: Relleno

        Atributos:

                   android: relleno izquierdo izquierdo

                   android: relleno derecho derecho

                   android: relleno superior superior

                   android: acolchado inferior inferior


Por qué no se muestra la línea discontinua o la línea continua:

 1. No mostrado: la altura de la Vista no puede ser mayor que la altura de la línea de puntos. Establezca la altura de la Vista para que sea mayor que la longitud del ancho de la forma;

 2. Línea sólida: en AndroidManifest.xml, android:hardwareAccelerated="false" se agrega a la actividad actual.

 

Supongo que te gusta

Origin blog.csdn.net/Android_hv/article/details/83866021
Recomendado
Clasificación