android autolayout 多屏幕适配,Android结合AutoLayout屏幕适配解决TextView自适应

package com.zwj.demo_popupwindow;

import android.content.Context;

import android.util.Log;

import android.util.TypedValue;

import android.view.WindowManager;

import android.widget.TextView;

/**

*

*/

public class AutoSize {

/**

* 1,使用前必须确定设计模板的尺寸

* 2,在Activity的onCreate方法当中调用init()进行初始化

* 3,为TextView设置大小的时候,调用autoTextView()方法进行

*/

private static int design_width = 720;

private static int design_height = 1280;

private static double width_per;

private static double height_per;

public static void init(Context mContext) {

WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);

width_per = (double) wm.getDefaultDisplay().getWidth() / design_width;

height_per = (double) wm.getDefaultDisplay().getHeight() / design_height;

if (width_per == 0 || height_per == 0) {

try {

throw new Throwable("没有获取到屏幕的宽高");

} catch (Throwable throwable) {

throwable.printStackTrace();

}

} else {

Log.i("AutoSize:", "屏幕宽的比率是:" + width_per + "屏幕高的比率是:" + height_per);

}

}

/**

* 适配宽

*

* @param size

* @return

*/

public static int autoWeight(int size) {

int autoSize = (int) (width_per * size);

Log.i("AutoSize:适配后的width为:", autoSize + "");

return autoSize;

}

/**

* 设配高

*

* @param size

* @return

*/

public static int autoHeight(int size) {

int autoSize = (int) (height_per * size);

Log.i("AutoSize:适配后的height为:", autoSize + "");

return autoSize;

}

/**

* 适配TextView字体

*

* @param view

* @param size

* @return

*/

public static void autoTextView(TextView view, float size) {

view.setTextSize(TypedValue.COMPLEX_UNIT_PX, autoSize(size));

}

private static float autoSize(float size) {

float autoSize = (float) (width_per * size);

Log.i("AutoSize:适配后的height为:", autoSize + "");

return autoSize;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值