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;

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,357评论 0 33
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 9,355评论 0 6
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,084评论 19 139
  • 说到下拉刷新控件,网上版本有很多,很多软件也都有下拉刷新功能。有一个叫XListView的,我看别人用过,没看过是...
    AiPuff阅读 8,737评论 3 43
  • 今天我又新买了把雨伞,绿色的,和毕业前我们两一起买的那把一样。后来,你把伞丢在了哪里?雨是凝固的烟,和吧唧吧唧吃东...
    鹅绿阅读 1,868评论 0 0

友情链接更多精彩内容