美文网首页
上班第六周

上班第六周

作者: 寒冬_腊月 | 来源:发表于2020-06-16 09:31 被阅读0次

    任务

    1. 完成提问和运营账号主页需求

    完成提问和运营账号主页需求

    在公司的第一个需求,总算是提测了,自己分三点对做需求做了总结:

    1. 和产品确定需求的细节,了解整个需求过程
    2. 界面上对照设计图争取做的和设计图上的一样,公司的设计没有区别Android和iOS,有些地方实现起来还是比较麻烦,还好项目中有一些已经实现了类似功能的可以拿过来用
    3. 代码上尽量写简洁,使用Android Studio inpect code工具规范代码

    获取View在屏幕中的位置

    final int[] decorViewLocationInScreen=new int[2];
    decorView.getLocationOnScreen(decorViewLocationInScreen);
    
    

    如果是在初始化View的时候需要用到post方法

    decorView.post(new Runnable() {
            @Override
            public void run() {
                final int[] decorViewLocationInScreen=new int[2];
                decorView.getLocationOnScreen(decorViewLocationInScreen);
            }
        });
    
    

    这里有个问题,在真机和模块器上通过这个算出来的值,来计算实际View的高度,但是结果是差别,后面看怎么解决

    代码实现样式

    实现文字加粗

    textview.setTypeface(textview.getTypeface(), Typeface.BOLD);
    
    

    修改ImageView tint颜色

    setColorFilter(Color.parseColor("#3462FF"));
    
    

    SparseArray、ArrayMap用来代替HashMap

    SparseArray

    1. 只能存储key为int类型的数据
    2. 避免了基本数据类型的装箱操作
    3. 不需要额外的结构体,单个元素的存储成本更低
    4. 数据量小的情况下,随机访问的效率更高

    ArrayMap
    该集合类型和SparseArray同样基于二分查询, 对于千以内的数据量Google推荐使用, 大量数据同样性能不佳;并且该集合类型不能解决自动装箱问题, 但是也能减少内存消耗;

    adb 工具

    查看包版本信息

    adb shell dumpsys package packageName | grep "version"
    
    

    查看当前显示的Activity所在包名和Activity路径,争对debug应用, Release失效

    adb shell dumpsys activity activities | grep "mFocusedWindow" //模拟器
    adb shell dumpsys activity activities | grep "ResumedActivity:" //真机
    
    

    查看当前手机屏幕信息

    adb shell dumpsys window | grep display
    
    

    调试adb命令

    adb shell am start -d your-deep-link
    
    

    空格字符

    发现个问题,从网上复制了一串字符,虽然已经使用了String的trim()方法,但是首字母还是有空格, 后面发现trim只能去掉英文下的空格,中文的空格是去不掉的,所以JAVA11(JDK11)中引入了strip(),用于去掉字符首尾空白是Unicode空白字符

    版本api支持问题

    xml布局中使用drawableTint要注意,这个只能在api 23上生效,要支持低版本的, 还是得用ImageView的 android:tint方法

    layer-list中使用android:width也要注意

    获取statusBar高度

    private int getStatusBarHeight() {
        Resources resources = mActivity.getResources();
        int resourceId = resources.getIdentifier("status_bar_height", "dimen","android");
        int height = resources.getDimensionPixelSize(resourceId);
        return height;
    }
    
    

    距离传感器

    距离传感器通常用于确定用户头部与手持设备屏幕表面的距离(比如,用户拨打或接听电话时脸贴近屏幕会亮等)。
    大部分距离传感器返回的是绝对距离,单位是 cm,也有返回其他的,比如我手头这台华为,只返回0,5两个值。

     Sensor sensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
    
    

    小点

    1. SimpleDateFormat格式化需要添加locale
     new SimpleDateFormat("MM月dd日  mm:ss", Locale.CHINA);
    
    
    1. Glide 可以进行圆角控制,如果加载的是gif的话,就需要使用CardView

    2. 从sdk26开始,所有的视图中新增了一个android:importantForAutofill的属性来控制是否需要自动填充信息功能

    3. 使用constraintlayout中group控件可以对一组的view进行Visiable或者Gone操作

    参照

    SparseArray 的使用及实现原理

    Android布局中的空格

    Sensor(PROXIMITY)

    相关文章

      网友评论

          本文标题:上班第六周

          本文链接:https://www.haomeiwen.com/subject/onklxktx.html