iT邦幫忙

2022 iThome 鐵人賽

DAY 9
0
Mobile Development

Android Studio - 30天菜鳥筆記系列 第 9

Android Studio菜鳥筆記 - Day9 - shape元件樣式

  • 分享至 

  • xImage
  •  

shape提供四種外觀類型:

  • rectangle: 矩形
  • oval: 橢圓形
  • line: 線型
  • ring: 環型

每個外觀都可以去設定各自屬性

shape屬性介紹 :

  1. solid: 實心顏色
<solid
android:color="#4F4F4F" />
  1. padding: 文字與邊框的間距
<padding
	android:top="10dp"
	android:right="10dp"
	android:bottom="10dp"
	android:left="10dp" />

left:左邊間距
right:右邊間距
top:上邊間距
bottom:下邊間距

  1. gradient: 漸層
    android:type 漸層的類型,分為以下兩種:
  • linear 線性漸層
<gradient
android:type="linear"
android:centerX="50%"
android:startColor="#E80707"
android:centerColor="#11A800"
android:endColor="#0066FF"
android:angle="45" />
  • radial 放射漸層
<gradient
android:type="radial"
android:centerX="50%"
android:centerY="50%"
android:startColor="#E80707"
android:centerColor="#11A800"
android:endColor="#0066FF"
android:gradientRadius="150" />

startColor  開始顏色
endColor  結束顏色
centerColor 中間顏色
centerX 漸層中心X坐標
centerY 漸層中心Y坐標
angle 漸層的角度,線性漸變(linear )才須設置
gradientRadius 漸變的半徑,放射漸變(radial )才須設置

  1. corners: 設置圓角,適用於外觀類型為矩形(rectangle)
<corners 
    android:radius="10dp" />

radius 四個角的半徑

也可以設定各自的角

<corners
android:topLeftRadius="10dp"
android:topRightRadius="5dp"
android:bottomLeftRadius="15dp"
android:bottomRightRadius="20dp"/>

topLeftRadius 左上角的半徑
topRightRadius 右上角的半徑
bottomLeftRadius 左下角的半徑
bottomRightRadius 右下角的半徑

  1. stroke: 邊框線
<stroke
android:width="1dp"
android:color="#870000" />

width 框線的寬度
color 框線的顏色

如何套用

  1. 建立樣式模板XNL
    在drawable點右鍵New新增一個Drawavle Resource File

    檔名隨便取按ok
  2. 設計樣式
    用上面所教的自訂外觀
    範例 :
<?xml version="1.0" encoding="utf-8"?>
<!-- 類型 -->
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
       android:shape="rectangle" >
    <!-- 圓角 -->
    <corners
        android:topLeftRadius="10dp"
        android:topRightRadius="10dp"
        android:bottomLeftRadius="10dp"
        android:bottomRightRadius="10dp" />
    <!-- 漸層 -->
    <gradient
        android:angle="45"
        android:centerX="50%"
        android:centerColor="#11A800"
        android:startColor="#E80707"
        android:endColor="#0066FF"
        android:type="linear" />
    <!-- 文字與邊框間距 -->
    <padding
        android:left="5dp"
        android:top="5dp"
        android:right="5dp"
        android:bottom="5dp" />
    <!-- 邊框 -->
    <stroke
        android:width="1dp"
        android:color="#870000" />
</shape>
  1. 回到View找到你要改變的元件套用background
    在Attributes找到background點選右邊直立的橢圓

    選擇創建好的樣式模板按下OK

也可以直接在xml直接加

這樣基本上就大功告成了

樣式無法改變

有些人發現全部都照做了甚至程式碼都一模一樣,結果只改變圓角而已,顏色什麼的都沒變。
原因是新版本的主題問題導致
解決方法:
將app/res/values目錄下的themes點開

有一行

<style name="Theme.Button_demo" parent="Theme.MaterialComponents.DayNight.DarkActionBar">

把這行改成

<style name="Theme.Button_demo" parent="Theme.MaterialComponents.DayNight.DarkActionBar.Bridge">

上一篇
Android Studio菜鳥筆記 - Day8 - Toast
下一篇
Android Studio菜鳥筆記 - Day10 - Spinner
系列文
Android Studio - 30天菜鳥筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言