GridView属性,布局的抽取,自定义属性,自定义控件

*****1. GridView用法
    1.1. 和ListView几乎一模一样
    1.2. 多了几个属性:
    android:numColumns="2" 表示有几列
    android:verticalSpacing="8dp" 行之间的距离
    android:horizontalSpacing="4dp" 列之间的距离
*2. 设置界面
    抽取样式
<TextView
         android:text="heheheh"
        android:background="#000"
        style="@style/TextTitleStyle"/>




    <style name="TextTitleStyle">
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">48dp</item>
        <item name="android:background">@color/global_blue</item>
        <item name="android:gravity">center</item>
        <item name="android:textColor">#FFF</item>
        <item name="android:textSize">20sp</item>
    </style>


4. 自定义组合控件
    ***4.1. View 和 ViewGroup, 
        View: 是所有控件的父类, 界面上一个矩形区域
        ViewGroup: 里面可以包含别的View, 也继承自View
        如果一个ViewGroup里面包含一些View, 里面这些View可以称之为这个ViewGroup的子View, 
        里面的子View称外面的ViewGroup为父View
    ***4.2. 添加子View
     
        View view = View.inflate(getContext(), R.layout.view_setting_item, null);
        this.addView(view);


6. 自定义属性
     reference  表示引用,参考某一资源ID
     string  表示字符串
     color  表示颜色值
     dimension  表示尺寸值
     boolean  表示布尔值
     integer  表示整型值
     float  表示浮点值
     fraction  表示百分数
     enum  表示枚举值
     flag  表示位运算


    6.1. 在 res/values/ 新建 attrs.xml 
        <?xml version="1.0" encoding="utf-8"?>
            <resources>
            <declare-styleable name="SettingItemView">
                <attr name="sivName" format="string"/>
            </declare-styleable>
        </resources>
    6.2. 在布局文件里使用
        xmlns:itheima="http://schemas.android.com/apk/res/com.itheima.mobilesafe80"
        <com.itheima.mobilesafe80.view.SettingItemView
            android:id="@+id/siv_setting_update"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="12dp"
            itheima:sivName="自动更新设置"
            android:background="@drawable/selector_setting_item_first" />
    6.3. 解析属性, 使用
        String title = attrs.getAttributeValue(
                "http://schemas.android.com/apk/res/com.itheima.mobilesafe80",//命名空间 "sivName"//属性名);
        TextView tvTitle = (TextView) view.findViewById(R.id.tv_setting_item_title);
        tvTitle.setText(title);
*****7. 自动更新设置
   点击设置条目的时候保存到sp
***8. 如果用户没有设置过密码, 弹出初始化密码对话框, 如果已经设置过了, 弹出密码验证对话框
***9. 手机防盗页面跳转逻辑
    9.1. 在初始化密码对话框设置完成, 跳转到第一个设置向导页面
    9.2. 在密码验证对话框输入正确, 判断有没有完成5个设置向导页, 
        如果没完成, 跳转到第一个设置向导页面
        如果完成了, 跳转到手机防盗页面
***10. 5个设置向导页面(至少写2两个)
11. 手机防盗页面
12. Activity切换动画
13. 手势滑动
    onTouchEvent, MotionEvent要知道
    GestureDetector了解
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值