zoukankan      html  css  js  c++  java
  • android UI学习 设置界面的布局(包括style的使用,selector的使用,Checkbox自定义样式,菜单项的样式)

      最终实现效果如下图:

      具体来说就是实现了checkbox自定义选中和为选择样式,菜单项根据不同位置设置不同背景.

      先上整体布局文件代码:

      

    <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:background="#DFE1E0"
        android:orientation="vertical">
        <LinearLayout
            style="@style/SettingItemTop"
            android:background="@drawable/setting_list_top"
            xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:tools="http://schemas.android.com/tools"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" 
            android:orientation="horizontal">
    
             <TextView
                style="@style/MySettingText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="开启通知"
                />
            <CheckBox 
                style="@style/MyCheckBox"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
        </LinearLayout>
        
        <LinearLayout
            style="@style/SettingItemMiddle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" 
            android:orientation="horizontal">
    
            <TextView
                style="@style/MySettingText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="开启铃声"
                />
            <CheckBox 
               style="@style/MyCheckBox"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
        </LinearLayout>
        
        <LinearLayout
            style="@style/SettingItemBottom"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" 
            android:orientation="horizontal">
    
             <TextView
                style="@style/MySettingText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="开启震动"
                />
            <CheckBox 
                style="@style/MyCheckBox"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
        </LinearLayout>
        
        
    </LinearLayout>
    
    
    

    注意到:

    style="@style/MySettingText"
    这一句,这里用了style.xml这个文件来控制样式.Android实际开发中,会有很多时候一些部件的属性是要重复出现的,如果每个控件都要单独的把这些属性单独的输入一次,那样会很没有效率.可以将重复的代码添加到style.xml中,设置成一种样式,在用到这些属性是引用这个样式即可.
    style="@style/MySettingText"这个是设置文字的属性,代码如下:
    <style name="MySettingText">
            <item name="android:layout_margin">10dp</item>
            <item name="android:layout_weight">6</item>
        </style>

    这里仅用了两个属性.开发中可以根据实际需要自行修改.以后每个设置项的文字不需要再把这些属性再添加一边,引用一下这个style即可.

    CheckBox样式自定义用到了selector.

    style="@style/MyCheckBox"
    此句对应的代码:
    <style name="MyCheckBox" parent="@android:style/Widget.CompoundButton.CheckBox">
            <item name="android:button">@drawable/check</item>
            <item name="android:layout_margin">10dp</item>
            <item name="android:layout_weight">1</item>
        </style>

    注意到此句:

    <item name="android:button">@drawable/check</item>

    这里就用了selector自定义样式.
    在res/drawable下建立一名为check(自定)的xml文件,代码如下:

    <?xml version="1.0" encoding="UTF-8"?>
    
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
      <item android:state_checked="true" android:drawable="@drawable/on"/>
    
      <item android:state_checked="false" android:drawable="@drawable/off"/>
    
    </selector>

    其中

    @drawable/on为选择时checkbox的图像,
    @drawable/off反之.



    还注意到菜单中第一项上方为圆角,中间项为四角都为方,最后一项为下部圆角,这个就是通过设置不同的背景图片实现的了,具体不细表.
    
    
     
    
    
  • 相关阅读:
    2015-05-28
    QQ项目随笔-15-05-19
    QQ聊天窗口布局笔记-15-05-17
    QQ聊天cell-15-05-16
    关于自定义cell——15-05-13
    关于MVC中德一些注意事项-15-05-11
    关于UITableView的若干方法-15-05-07
    UIAlertView(弹窗)的若干方法15-05-07
    •UIButton快捷获取属性值
    ES6(简)
  • 原文地址:https://www.cnblogs.com/csonezp/p/2823976.html
Copyright © 2011-2022 走看看