Android通用UI开发技术(1)

本文深入探讨了在Android应用开发中自定义UI组件的重要性,详细介绍了背景选择器selector、自定义形状shape、自定义style、自定义Themes的创建与应用方法,并通过实例展示了如何利用这些组件来提升应用的用户体验。

背景选择器selector

主要用于实现点击效果的变化,通常我们在drawable中写我们自定义的selector文件,可以控制是否有焦点、是否被选择、是否被点击等等。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 默认的图片背景 -->
    <item android:drawable=""/>
    <!--可以自定义大量的标签 -->
    <item android:drawable="" android:state_checked="false"/>
    <item android:drawable="" android:state_pressed="false"/>
</selector>

自定义形状shape

主要用于实现控件的形状,通常我们在drawable中定有我们的shape,可以定义样式的内边距、填充颜色、圆角、描边等等。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape ="oval">
    <!-- 設置形狀 shape可以選擇圓形矩形等等-->
    
    <!-- 設置大小 -->
    <size
        android:width="50dp"
        android:height="50dp"/>

    <!-- 設置间隔 -->
    <padding
        android:bottom="1dp"
        android:left="1dp"
        android:right="1dp"
        android:top="1dp"/>

    <!-- 設置填充顏色 -->
    <solid
        android:color="@android:color/holo_red_light"/>

    <!-- 設置描边 -->
    <stroke
        android:width="1dp"
        android:color="@android:color/holo_red_dark"/>

    <!-- 設置圆角 -->
    <corners
        android:bottomLeftRadius="1dp"
        android:bottomRightRadius="1dp"
        android:topLeftRadius="1dp"
        android:topRightRadius="1dp"/>

    <!-- 設置渐变 -->
    <gradient
        android:endColor="@android:color/black"
        android:startColor="@android:color/white"/>
</shape>


自定义stype

主要实现控件或者layout的样式,通常存放于res/values,所定义的item可复用于任何控件或者layout,支持继承。

<resources>

    <style name="Text" >
        <item name="android:textSize">10sp</item>
        <item name="android:textColor">#008</item>
    </style>

    <style name="SpecialText" parent="@style/Text">
        <item name="android:layout_height">18dp</item>
        <item name="android:layout_width">18dp</item>
    </style>

</resources>

自定义Themes

主要用于设置窗体样式,常见于Activity风格主题,不过这个不能单独用于一个View中,themes可以包含style。官方提供了大量的themes使用,引用官方一个例子themes.xml。

<!-- Window attributes -->
<item name="windowBackground">@android:drawable/screen_background_dark</item>
<item name="windowFrame">@null</item>
<item name="windowNoTitle">false</item>
<item name="windowFullscreen">false</item>
<item name="windowIsFloating">false</item>
<item name="windowContentOverlay">@android:drawable/title_bar_shadow</item>
<item name="windowTitleStyle">@android:style/WindowTitle</item>
<item name="windowTitleSize">25dip</item>
<item name="windowTitleBackgroundStyle">@android:style/WindowTitleBackground</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Activity</item>

文章持续更新,后序会继续讲图片图例,屏幕适配,界面开发尺寸分析等,欢迎关注交流。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值