天天看点

Android通用UI开发技术(1)

背景选择器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>
           

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

继续阅读