ShapeDrawable

本文介绍如何利用Android的ShapeDrawable来定义各种基本几何图形作为UI元素背景,包括不同形状、渐变填充及边框效果等。通过三个具体的例子展示了如何在布局文件中应用这些自定义形状。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.test.shapedrawable;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

/**
 * ShapeDrawable 用于定义一个基本的几何图形(如矩形,圆形,线条等)
 */
public class ShapeDrawableActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_shape_drawable);
    }
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context="com.test.shapedrawable.ShapeDrawableActivity">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/my_shape_1"
        />
     <EditText
         android:layout_marginTop="30dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/my_shape_2"
        />
     <EditText
         android:layout_marginTop="30dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/my_shape_3"
        />

</LinearLayout>

shape 资源文件

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <!--设置填充颜色-->
    <solid android:color="#fff"   />

    <!--设置四周的内边距-->
    <padding android:bottom="7dp" android:left="7dp"
             android:top="7dp" android:right="7dp" />

    <!--设置边框-->
    <stroke android:color="#ff0" android:width="3dp" android:dashWidth="3dp"
            android:dashGap="3dp"
        />
</shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">

    <!--定义填充渐变颜色-->
    <gradient
        android:angle="45"
        android:centerColor="#80ff00ff"
        android:startColor="#ffff0000"/>

    <!--设置四周内边距-->
    <padding
        android:bottom="7dp"
        android:left="7dp"
        android:right="7dp"
        android:top="7dp"/>

    <!--设置圆角矩形-->
    <corners android:radius="8dp"/>

</shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="oval">
    <!--定义渐变颜色-->

    <gradient
        android:angle="45"
        android:endColor="#00f"
        android:startColor="#ff0"
        android:type="sweep"/>
    <!--设置内边距-->
    <padding
        android:bottom="5dp"
        android:left="5dp"
        android:right="5dp"
        android:top="5dp"/>

    <!--设置圆角矩形-->
    <corners android:radius="8dp"/>

</shape>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值