全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android 图片显示与屏幕适配的问题

Android 图片显示与屏幕适配的问题

在Android开发中比较头疼的是Android的分辨率问题,那么这里给大家介绍个万能办法,这个办法的优点是可以实现万能适应,给开发和美工设计提供了依据,但是对开发来说代码量也不少,具体办法:

(1)获取屏幕的尺寸

WindowManager windowManager = (WindowManager)     getSystemService(Context.WINDOW_SERVICE);
Display d = windowManager.getDefaultDisplay();
mWidth = d.getWidth();mHeight = d.getHeight();
DisplayMetrics dm = getResources().getDisplayMetrics()
mScreenDensity = dm.density;

(2)美工设计图的尺寸

uiWidth,uiHeight

(3)获取缩放比例

float scaleWidth = mWidth / uiWidth;
float scaleHeight = mHeight/ uiHeight;

(4)所有布局的尺寸用代码实现:

public static int getWidthSize(int size) {
        return (int) (size * scaleWidth);
    }

    public static int getHightSize(int size) {
        return (int) (size * scaleHeight);
    }

    public static float getTextSize(int pxSize) {
        return (pxSize * scaleHeight) / mScreenDensity;
    }

    public static void setViewSize(int width, int height, View v) {
        int paramWidth = getWidthSize(width);
        int paramHeight = getHightSize(height);
        ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) v
                .getLayoutParams();
        if (width != INVALID) {
            params.width = paramWidth;
        }
        if (height != INVALID) {
            params.height = paramHeight;
        }
        v.setLayoutParams(params);
    }

    public static void setViewPadding(int left, int top, int right, int bottom,
            View v) {
        left = getWidthSize(left);
        top = getHightSize(top);
        right = getWidthSize(right);
        bottom = getWidthSize(bottom);
        v.setPadding(left, top, right, bottom);
    }

    public static void setViewMargin(int left, int top, int right, int bottom,
            View v) {
        int paramLeft = getWidthSize(left);
        int paramTop = getHightSize(top);
        int paramRight = getWidthSize(right);
        int paramBottom = getHightSize(bottom);
        ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) v
                .getLayoutParams();
        if (left != INVALID) {
            params.leftMargin = paramLeft;
        }
        if (right != INVALID) {
            params.rightMargin = paramRight;
        }
        if (top != INVALID) {
            params.topMargin = paramTop;
        }
        if (bottom != INVALID) {
            params.bottomMargin = paramBottom;
        }
        v.setLayoutParams(params);}

(5)这里是设置尺寸的代码:

setViewSize(100, 100, mView);
    setViewMargin(20, 0, 0, 20, mView);
    setViewPadding(10, 10, 10, 10, mView);
    mTextView.setTextSize(getTextSize(30));

由上在设计效果图时,可对图内元素进行尺寸标注,程序即可实现按比例缩放。

以上就是Android 图片显示与屏幕适配的问题的万能解决办法,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Android  # 图片显示与屏幕适配  # 屏幕适配的问题解决办法  # Android屏幕适配工具类 Android自动生成不同分辨率的值  # Android中关于屏幕的三个小众知识(宽屏适配、禁止截屏和保持屏幕常亮)  # 简单谈谈我的Android屏幕适配之路  # Android 手机屏幕适配解决办法  # Android的分辨率和屏幕适配详解  # Android-屏幕适配需要注意的地方总结  # Android 简单好用的屏幕适配方案  # 的是  # 如有  # 希望能  # 给大家  # 可以实现  # 谢谢大家  # 解决办法  # 可对  # 由上  # 按比例  # 疑问请  # mScreenDensity  # getDisplayMetrics  # density  # uiWidth  # DisplayMetrics  # getHeight  # getResources  # dm  # uiHeight 


相关文章: Python文件管理规范_工程实践说明【指导】  建站之家VIP精选网站模板与SEO优化教程整合指南  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  相册网站制作软件,图片上的网址怎么复制?  已有域名如何免费搭建网站?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  建站主机是否属于云主机类型?  ,南京靠谱的征婚网站?  javascript中的try catch异常捕获机制用法分析  如何在宝塔面板中创建新站点?  定制建站方案优化指南:企业官网开发与建站费用解析  广州美橙建站如何快速搭建多端合一网站?  家庭服务器如何搭建个人网站?  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何高效利用200m空间完成建站?  广州营销型建站服务商推荐:技术优势与SEO优化解析  山东网站制作公司有哪些,山东大源集团官网?  建站之星导航菜单设置与功能模块配置全攻略  建站主机选购指南与交易推荐:核心配置解析  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  建站之星伪静态规则如何设置?  c# Task.ConfigureAwait(true) 在什么场景下是必须的  安徽网站建设与外贸建站服务专业定制方案  魔毅自助建站系统:模板定制与SEO优化一键生成指南  PHP 500报错的快速解决方法  如何通过VPS搭建网站快速盈利?  建站之星如何优化SEO以实现高效排名?  网页设计网站制作软件,microsoft office哪个可以创建网页?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  湖州网站制作公司有哪些,浙江中蓝新能源公司官网?  javascript基本数据类型及类型检测常用方法小结  如何选择高性价比服务器搭建个人网站?  如何在IIS中配置站点IP、端口及主机头?  PHP正则匹配日期和时间(时间戳转换)的实例代码  如何用PHP快速搭建CMS系统?  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  深圳网站制作的公司有哪些,dido官方网站?  定制建站是什么?如何实现个性化需求?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  企业微网站怎么做,公司网站和公众号有什么区别?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  建站之星如何实现PC+手机+微信网站五合一建站?  深圳网站制作培训,深圳哪些招聘网站比较好?  成都网站制作报价公司,成都工业用气开户费用?  临沂网站制作公司有哪些,临沂第四中学官网?  公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  在线制作视频的网站有哪些,电脑如何制作视频短片?  制作网站的过程怎么写,用凡科建站如何制作自己的网站?  南宁网站建设制作定制,南宁网站建设可以定制吗? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。