jQuery鼠标指针特效

Android-屏幕适配

自定义控件 px 屏幕不同分辨率适配

/**
 * Created by AS.
 *
 * @author lol_tww
 * @time on 2022/3/19
 * @describe describe
 */
public class Util {
    private static Util sUtil;

    //默认设备的宽高
    private static final float STANDARD_WIDTH = 720;
    private static final float STANDARD_HEIGHT = 1280;


    private int mDisplayWidth;
    private int mDisplayHeight;

    private Util(Context applicationContext){
        //获取屏幕的宽高
        if(mDisplayHeight == 0 || mDisplayWidth ==0){
            WindowManager manager = (WindowManager) applicationContext.getSystemService(Context.WINDOW_SERVICE);
            if(manager !=null){
                DisplayMetrics displayMetrics = new DisplayMetrics();
                manager.getDefaultDisplay().getMetrics(displayMetrics);
                if(displayMetrics.widthPixels > displayMetrics.heightPixels){
                    //横屏
                    mDisplayWidth = displayMetrics.heightPixels;
                    mDisplayHeight = displayMetrics.widthPixels;
                }else {
                    mDisplayWidth = displayMetrics.widthPixels;
                    mDisplayHeight = displayMetrics.heightPixels-getStatusBarHeight(applicationContext);
                }
            }
        }
    };

    //状态栏的高度
    public int getStatusBarHeight(Context context){
        int resID = context.getResources().getIdentifier("status_bar_height","dimen","android");
        if(resID > 0){
            return context.getResources().getDimensionPixelSize(resID);
        }
        return 0;
    }

    //水平方向缩放比例,分辨率不同
    public float getHorizontalScale(){
        return mDisplayWidth /STANDARD_WIDTH;
    }

    //垂直方向缩放比例,分辨率不同
    public float getVerticalScale(){
        return mDisplayWidth /STANDARD_HEIGHT;
    }


    public static Util getInstance(Context context){
        if(sUtil == null){
            sUtil = new Util(context.getApplicationContext());
        }
        return sUtil;
    }
    
}


屏幕适配 --像素密度


/**
 * Created by AS.
 *
 * @author lol_tww
 * @time on 2022/3/19
 * @describe describe
 */
public class Density {
    private static final float WIDTH = 360; //默认设备的宽 单位dp


    private static float appDensity;//屏幕密度
    private static float appScaleDensity;//字体缩放比例,默认appDensity


    public static void setDensity(Application application, Activity activity){
        //获取当前app的屏幕显示信息
        DisplayMetrics displayMetrics = application.getResources().getDisplayMetrics();
        if(appDensity == 0){
            //初始化
            appDensity = displayMetrics.density;
            appScaleDensity = displayMetrics.scaledDensity;

            //添加字体变化监听回调
            application.registerComponentCallbacks(new ComponentCallbacks() {
                @Override
                public void onConfigurationChanged(@NonNull Configuration newConfig) {
                    //字体发生改变
                    if(newConfig != null && newConfig.fontScale>0){
                        appScaleDensity = application.getResources().getDisplayMetrics().scaledDensity;
                    }
                }

                @Override
                public void onLowMemory() {

                }
            });
        }

        //获取目标density
        float targetDensity = displayMetrics.widthPixels /WIDTH;
        float targetScaleDensity = targetDensity * (appScaleDensity/appDensity);
        int targetDensityDpi = (int) (targetDensity *160);

        //替换Activity 的density,scaleDensity,densityDpi;
        DisplayMetrics dm = activity.getResources().getDisplayMetrics();
        dm.density = targetDensity;
        dm.scaledDensity = targetScaleDensity;
        dm.densityDpi = targetDensityDpi;
    }
}

posted @ 2022-03-19 11:12  僵小七  阅读(69)  评论(0编辑  收藏  举报