Android语言基础教程(147)Android Drawable资源之样式(style)资源:Android样式魔法:用Style和Drawable打造高颜值APP

还在为Android界面丑到流泪而烦恼?掌握这些技巧让你的APP美到犯规!

作为一名Android开发者,你是否曾经为了一个简单的按钮样式熬夜到凌晨?是否曾在多个XML文件中复制粘贴相同的属性,只为了保持界面统一?别担心,Android的样式系统正是为了解决这些问题而生的!

本文将带你深入探索Android样式资源的奥秘,教你如何用Style和Drawable打造既美观又高效的界面。准备好了吗?让我们一起开启这趟Android样式魔法之旅!

1. 理解Android样式基础

在Android中,样式本质上是一种属性集合,可以一次性应用到多个UI组件上,实现统一的外观和感觉。想象一下,如果你有10个按钮都需要相同的背景、文字大小和内边距,你会怎么做?

没有样式的时候,你只能在每个按钮上重复写相同的属性:

<Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:background="@drawable/btn_bg"
  android:textColor="@color/white"
  android:textSize="16sp"
  android:padding="12dp"
  android:text="按钮1" />
  
<Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:background="@drawable/btn_bg"
  android:textColor="@color/white"
  android:textSize="16sp"
  android:padding="12dp"
  android:text="按钮2" />

这种重复代码简直是开发者的噩梦!而使用样式,你只需要定义一个样式,然后在各个按钮上引用即可:

<style name="PrimaryButton">
  <item name="android:background">@drawable/btn_bg</item>
  <item name="android:textColor">@color/white</item>
  <item name="android:textSize">16sp</item>
  <item name="android:padding">12dp</item>
</style>
<Button
  style="@style/PrimaryButton"
  android:text="按钮1" />
  
<Button
  style="@style/PrimaryButton"
  android:text="按钮2" />

看,代码瞬间简洁多了!而且当你需要修改按钮样式时,只需改动一处,所有使用该样式的按钮都会自动更新,这才是真正的魔法

2. Drawable资源:样式的颜值担当

在深入了解样式之前,我们先来看看Drawable资源,因为它们是样式的基石。Drawable不仅仅是图片,在Android中,它代表了任何可以在屏幕上绘制的东西 - 形状、颜色、渐变,甚至是其他Drawable的组合。

2.1 ShapeDrawable:百变形金刚

ShapeDrawable是Android中最实用的Drawable之一,它允许你通过XML定义各种形状,而无需准备图片资源。这不仅能减小APK大小,还能自动适配不同屏幕尺寸

来看看ShapeDrawable能创建哪些神奇的形状:

矩形形状 - 这是最常用的形状:

<!-- res/drawable/rounded_rectangle.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <!-- 填充颜色 -->
    <solid android:color="#FF4081" />
    <!-- 边框 -->
    <stroke
        android:width="2dp"
        android:color="#FF1744" />
    <!-- 圆角 -->
    <corners android:radius="8dp" />
    <!-- 内边距 -->
    <padding
        android:bottom="8dp"
        android:left="8dp"
        android:right="8dp"
        android:top="8dp" />
</shape>

圆形形状 - 非常适合用于头像背景或状态指示器:

<!-- res/drawable/circle.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid android:color="#4285F4" />
    <si
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值