zoukankan      html  css  js  c++  java
  • 第二阶段冲刺第四天

    摘要:剩余一些签到的功能尚未完成,今天继续把剩下的搞完

    代码:

    package com.lh.std_everything.ui.sign.SignViewX;
    
    import android.content.Context;
    import android.util.DisplayMetrics;
    import android.util.SparseArray;
    import android.view.WindowManager;
    
    import java.text.DecimalFormat;
    
    /**
     * 屏幕分辨率计算工具
     */
    public class ResolutionUtil {
        private static volatile ResolutionUtil instance;
    
        /**
         * UI模版标准宽度
         */
        private static final int STANDARD_SCREEN_WIDTH = 1080;
        /**
         * UI模版标准高度
         */
        private static final int STANDARD_SCREEN_HEIGHT = 1853;
    
        private boolean isInitial;
        private int screenWidth;
        private int screenHeight;
        /**
         * 垂直方向数据列
         */
        private SparseArray<Integer> verticalPixelList;
        /**
         * 水平方向数据列
         */
        private SparseArray<Integer> horizontalPixelList;
    
        public ResolutionUtil() {
            isInitial = false;
            verticalPixelList = new SparseArray<>();
            horizontalPixelList = new SparseArray<>();
        }
    
        /**
         * 获取当前设备屏幕分辨率
         *
         * @param context context
         */
        public void init(Context context) {
            if (!isInitial) {
                DisplayMetrics metrics = new DisplayMetrics();
                WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
                windowManager.getDefaultDisplay().getMetrics(metrics);
    
                this.screenWidth = metrics.widthPixels;
                this.screenHeight = metrics.heightPixels;
                isInitial = true;
            }
        }
    
        public static ResolutionUtil getInstance() {
            if (instance == null) {
                synchronized (ResolutionUtil.class) {
                    if (instance == null) {
                        instance = new ResolutionUtil();
                    }
                }
            }
            return instance;
        }
    
        public int getScreenWidth() {
            return screenWidth;
        }
    
        public int getScreenHeight() {
            return screenHeight;
        }
    
        public int formatHorizontal(int standardValue) {
            int processedValue = horizontalPixelList.get(standardValue, -1);
            if (processedValue == -1) {
                processedValue = Integer.valueOf(getFormatDouble("#0000", standardValue * screenWidth / STANDARD_SCREEN_WIDTH));
                horizontalPixelList.append(standardValue, processedValue);
            }
            return processedValue;
        }
    
        public int formatVertical(int standardValue) {
            int processedValue = verticalPixelList.get(standardValue, -1);
            if (processedValue == -1) {
                processedValue = Integer.valueOf(getFormatDouble("#0000", standardValue * screenHeight / STANDARD_SCREEN_HEIGHT));
                verticalPixelList.append(standardValue, processedValue);
            }
            return processedValue;
        }
    
        public static String getFormatDouble(String str, double sum) {
            DecimalFormat df = new DecimalFormat(str);
            return df.format(sum);
        }
    }
    View Code
    package com.lh.std_everything.ui.sign.SignViewX;
    
    import java.util.List;
    
    /**
     * SignAdapter
     * CCreated by David  2020/5/1.
     */
    public class SignAdapter extends CalendarAdapter {
        private List<SignEntity> data;
    
        public SignAdapter(List<SignEntity> data) {
            this.data = data;
        }
    
        @Override
        public SignView.DayType getType(int dayOfMonth) {
            return SignView.DayType.valueOf(data.get(dayOfMonth - 1).getDayType());
        }
    }
    View Code
    package com.lh.std_everything.ui.sign.SignViewX;
    
    /**
     * SignEntity
     * Created by David  2020/5/1.
     */
    public class SignEntity {
        private int dayOfMonth;
        private int dayType;
    
        public int getDayOfMonth() {
            return dayOfMonth;
        }
    
        public void setDayOfMonth(int dayOfMonth) {
            this.dayOfMonth = dayOfMonth;
        }
    
        public int getDayType() {
            return dayType;
        }
    
        public void setDayType(int dayType) {
            this.dayType = dayType;
        }
    }
    View Code

    测试有bug,不能记录签到状态。。。

    明天改一下。

  • 相关阅读:
    Mongo简单查询总结
    将对象转换成Dictionary 字典
    C#调用NPOI组件导出Excel表格
    Lambda中的一些方法的总结
    LinQ总结
    简单的爬虫 一
    Python 中的注释规范
    在VM上配置一个能上网的网络设置
    Python 中新式类的内置方法
    Python 中的locals()
  • 原文地址:https://www.cnblogs.com/dd110343/p/13059780.html
Copyright © 2011-2022 走看看